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:
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
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
- Private Sub Form_Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- ' ...
- Dim netConnect As Boolean = False
- If (ExistsDirectory(("\\SERVER\Laufwerk Daten")) = False) Then
- netConnect = AddNetworkDrive("X:", "\\SERVER\Laufwerk Daten", "Gast", "gastpasswort")
- End If
- ' ...
- End Sub
- Public Function ExistsDirectory(dir As String, Optional ByVal Extended As Boolean = False) As Boolean
- Dim DirInfo As System.IO.DirectoryInfo
- Try
- DirInfo = New System.IO.DirectoryInfo(dir)
- Catch ex As ArgumentNullException
- Throw New ApplicationException( _
- "ExistsDirectory: Übergebener Parameter ist Nothing", ex)
- Catch ex As ArgumentException
- Throw New ApplicationException( _
- "ExistsDirectory: Übergebener Parameter ist leer", ex)
- Catch ex As Exception
- Throw New ApplicationException( _
- "ExistsDirectory: Generelle Ausnahme", ex)
- End Try
- Return DirInfo.Exists
- End Function
- Public Function AddNetworkDrive(ByVal Drive As String, _
- ByVal UncPath As String, _
- Optional ByVal Username As String = "", _
- Optional ByVal Password As String = "") As Boolean
- Dim p As New Process()
- Try
- With p.StartInfo
- .FileName = "net"
- If Username.Length > 0 Then
- ' Netzlaufwerk mit Benutzername und Kennwort erstellen
- .Arguments = String.Format("use {0} ""{1}"" /user:""{2}"" {3}", _
- Drive, UncPath, Username, Password)
- Else
- ' Netzlaufwerk ohne Benutzername und Kennwort erstellen
- .Arguments = String.Format("use {0} ""{1}""", Drive, UncPath)
- End If
- .UseShellExecute = False
- .CreateNoWindow = True
- End With
- p.Start()
- Return True
- Catch ex As Exception
- MsgBox(ex.Message)
- Return False
- End Try
- 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