Automatisch verbundenes Netzlaufwerk im Explorer anzeigen lassen (Windows 7)

  • VB.NET
  • .NET (FX) 4.5–4.8

    Automatisch verbundenes Netzlaufwerk im Explorer anzeigen lassen (Windows 7)

    Hallo zusammen,

    in meinem Programm ist es für verschiedene Routinen notwendig, dass es auf ein bestimmtes Netzlaufwerk zugreifen kann. Zu diesem Zweck nutzte ich folgende Methoden, um eine Verbindung herzustellen, falls der User vergessen hat sich auf dem Laufwerk anzumelden:

    VB.NET-Quellcode

    1. Private Sub Form_Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. ' ...
    3. Dim netConnect As Boolean = False
    4. If (ExistsDirectory(("\\SERVER\Laufwerk Daten")) = False) Then
    5. netConnect = AddNetworkDrive("X:", "\\SERVER\Laufwerk Daten", "Gast", "gastpasswort")
    6. End If
    7. ' ...
    8. End Sub
    9. Public Function ExistsDirectory(dir As String, Optional ByVal Extended As Boolean = False) As Boolean
    10. Dim DirInfo As System.IO.DirectoryInfo
    11. Try
    12. DirInfo = New System.IO.DirectoryInfo(dir)
    13. Catch ex As ArgumentNullException
    14. Throw New ApplicationException( _
    15. "ExistsDirectory: Übergebener Parameter ist Nothing", ex)
    16. Catch ex As ArgumentException
    17. Throw New ApplicationException( _
    18. "ExistsDirectory: Übergebener Parameter ist leer", ex)
    19. Catch ex As Exception
    20. Throw New ApplicationException( _
    21. "ExistsDirectory: Generelle Ausnahme", ex)
    22. End Try
    23. Return DirInfo.Exists
    24. End Function
    25. Public Function AddNetworkDrive(ByVal Drive As String, _
    26. ByVal UncPath As String, _
    27. Optional ByVal Username As String = "", _
    28. Optional ByVal Password As String = "") As Boolean
    29. Dim p As New Process()
    30. Try
    31. With p.StartInfo
    32. .FileName = "net"
    33. If Username.Length > 0 Then
    34. ' Netzlaufwerk mit Benutzername und Kennwort erstellen
    35. .Arguments = String.Format("use {0} ""{1}"" /user:""{2}"" {3}", _
    36. Drive, UncPath, Username, Password)
    37. Else
    38. ' Netzlaufwerk ohne Benutzername und Kennwort erstellen
    39. .Arguments = String.Format("use {0} ""{1}""", Drive, UncPath)
    40. End If
    41. .UseShellExecute = False
    42. .CreateNoWindow = True
    43. End With
    44. p.Start()
    45. Return True
    46. Catch ex As Exception
    47. MsgBox(ex.Message)
    48. Return False
    49. End Try
    50. End Function


    Funktioniert auch prima! Das Programm erstellt ein Laufwerk und kann fehlerfrei auf die Inhalte zugreifen.

    Unter XP wird das erstellte Laufwerk ebenfalls im Explorer angezeigt, in Win 7 leider nicht. Die Anzeige des Laufwerks im Win-Explorer ist jedoch für weitere Arbeitsschritte wichtig.

    Was muss ich bei Win 7 beachten, damit auch hier dass Netzlaufwerk im Win-Explorer unter dem Arbeitplatz angezeigt wird?

    Gruß,

    Mario