Bei mir klappt's wie ich beschireben habe. Wenn du Result 1326 bekommst könnte es sein, weil du Passwort und UserId vertauscht hast bei Declare. Hier ist mein kompletter Code:
Private Const NO_ERROR = 0
Private Const CONNECT_UPDATE_PROFILE = &H1
' The following includes all the Private Constants defined for NETRESOURCE,
' not just the ones used in this example.
Private Const RESOURCETYPE_DISK = &H1
Private Const RESOURCETYPE_PRINT = &H2
Private Const RESOURCETYPE_ANY = &H0
Private Const RESOURCE_CONNECTED = &H1
Private Const RESOURCE_REMEMBERED = &H3
Private Const RESOURCE_GLOBALNET = &H2
Private Const RESOURCEDISPLAYTYPE_DOMAIN = &H1
Private Const RESOURCEDISPLAYTYPE_GENERIC = &H0
Private Const RESOURCEDISPLAYTYPE_SERVER = &H2
Private Const RESOURCEDISPLAYTYPE_SHARE = &H3
Private Const RESOURCEUSAGE_CONNECTABLE = &H1
Private Const RESOURCEUSAGE_CONTAINER = &H2
' Error Private Constants:
Private Const ERROR_ACCESS_DENIED = 5&
Private Const ERROR_ALREADY_ASSIGNED = 85&
Private Const ERROR_BAD_DEV_TYPE = 66&
Private Const ERROR_BAD_DEVICE = 1200&
Private Const ERROR_BAD_NET_NAME = 67&
Private Const ERROR_BAD_PROFILE = 1206&
Private Const ERROR_BAD_PROVIDER = 1204&
Private Const ERROR_BUSY = 170&
Private Const ERROR_CANCELLED = 1223&
Private Const ERROR_CANNOT_OPEN_PROFILE = 1205&
Private Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202&
Private Const ERROR_EXTENDED_ERROR = 1208&
Private Const ERROR_INVALID_PASSWORD = 86&
Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Private Const ERROR_NO_NET_OR_BAD_SERVER = 53&
Private Const ERROR_BAD_USER_OR_PASSWORD = 1326&
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
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
Declare Auto Function WNetUseConnection Lib "mpr.dll" _
(ByVal hwndOwner As Integer, _
ByRef lpNetResource As NETRESOURCE, _
ByVal lpPassword As String, _
ByVal lpUserID As String, _
ByVal dwFlags As Integer, _
ByVal lpAccessName As String, _
ByRef lpBufferSize As Integer, _
ByRef lpResult As Integer) As Integer
Function test()
Dim NETR As NETRESOURCE
Dim r As Integer
Dim Result As Integer
Dim buffer As String
Dim bufferlen As Integer
buffer = Space(64) : bufferlen = Len(buffer)
With NETR
.dwType = RESOURCETYPE_DISK
.lpRemoteName = "\\Ripley\C"
.lpLocalName = "P:"
.lpProvider = ""
End With
r = WNetUseConnection(0, NETR, "pwd", "user", 0, buffer, bufferlen, _
Result)
If r <> 0 Then
Throw New Exception("Der Netzwerkzugriff ist mit dem Fehler " & _
CStr(r) & " fehlgeschlagen, der Dienst wird beendet.")
End If
End Function |