Hallo,
ich schmeiße Dir das mal einfach so hin.
Musst Du dir aber noch anpassen.
Public Class clsNetwork
Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
"WNetAddConnection2A" (ByRef lpNetResource As NETRESOURCE, ByVal _
lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As _
Integer) As Integer
Public Declare Function WNetCancelConnection2 Lib "mpr" Alias _
"WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Integer, _
ByVal fForce As Integer) As Integer
Public Const ForceDisconnect As Integer = 1
Public Const RESOURCETYPE_DISK As Long = &H1
Public Structure NETRESOURCE
Public dwScope As Integer
Public dwType As Integer
Public dwDisplayType As Integer
Public dwUsage As Integer
Public lpLocalName As String
Public lpRemoteName As String
Public lpComment As String
Public lpProvider As String
End Structure
Public Shared Function ConnectServer(ByVal Pfad As String, ByVal _
Driveletter As String) As Integer
If Not My.Computer.Network.IsAvailable Then
MsgBox("Du hast keine Netzwerkverbindung!")
Return -1
Else
Dim Host As String = ""
If Pfad.IndexOf("\\", 0, 2) >= 0 Then
Host = Pfad.Replace("\\", "")
Host = Host.Substring(0, Host.IndexOf("\"))
End If
If Host = "10.209.76.50" Or Host = "Siplaceserver" Then
If System.IO.Directory.Exists(Pfad) = False Then
'Wenn kein Laufwerksbuchstabe angegeben wird wird auch kein
' Laufwerk angelegt. Der Zugriff ist aber über UNC
' möglich!!!
'Usage: mapdrive(driveletter with ":", uncpath, username,
' password). Use "Nothing" without quotes if username or
' password are blank
clsNetwork.MapDrive(Driveletter, Pfad, "Administrator", _
"xxxx")
End If
ElseIf Host = "cgdtr0510" Then
If System.IO.Directory.Exists(Pfad) = False Then
'Wenn kein Laufwerksbuchstabe angegeben wird wird auch kein
' Laufwerk angelegt. Der Zugriff ist aber über UNC
' möglich!!!
'Usage: mapdrive(driveletter with ":", uncpath, username,
' password). Use "Nothing" without quotes if username or
' password are blank
clsNetwork.MapDrive(Driveletter, Pfad, _
"cgdtr0510\Administrator", "xxxxx")
End If
Else
If System.IO.Directory.Exists(Pfad) = False Then
'Wenn kein Laufwerksbuchstabe angegeben wird wird auch kein
' Laufwerk angelegt. Der Zugriff ist aber über UNC
' möglich!!!
'Usage: mapdrive(driveletter with ":", uncpath, username,
' password). Use "Nothing" without quotes if username or
' password are blank
clsNetwork.MapDrive(Driveletter, Pfad, Host & "\" & _
My.Settings.RemoteUser, My.Settings.RemotePW)
End If
End If
End If
Return 0
End Function
'Function to map drive/connect to drive
Public Shared Function MapDrive(ByVal DriveLetter As String, ByVal UNCPath _
As String, ByVal strUsername As String, ByVal strPassword As String) As _
Boolean
Dim nr As NETRESOURCE
nr = New NETRESOURCE
nr.lpRemoteName = UNCPath
nr.lpLocalName = DriveLetter
nr.dwType = RESOURCETYPE_DISK
Dim result As Integer
Try
result = WNetAddConnection2(nr, strPassword, strUsername, 0)
Catch ex As Exception
MsgBox(ex.Message)
End Try
If result = 0 Then
Return True
Else
Return False
End If
End Function
'Function to disconnect from drive
Public Shared Function UnMapDrive(ByVal DriveLetter As String) As Boolean
Dim rc As Integer
rc = WNetCancelConnection2(DriveLetter & ":", 0, ForceDisconnect)
If rc = 0 Then
Return True
Else
Return False
End If
End Function
End Class |