Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
"WNetAddConnection2A" _
(lpNetResource As NETRESOURCE, _
ByVal lpPassword As String, _
ByVal lpUserName As String, _
ByVal dwFlags As Long) As LongPublic Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias _
"WNetCancelConnection2A" _
(ByVal lpName As String, _
ByVal dwFlags As Long, _
ByVal fForce As Long) As Long
'//网络连接______________________End
Public Type NETRESOURCE
    dwScope As Long
    dwType As Long
    dwDisplayType As Long
    dwUsage As Long
    lpLocalName As String
    lpRemoteName As String
    lpComment As String
    lpProvider As String
End TypePublic Const NO_ERROR = 0
Public Const CONNECT_UPDATE_PROFILE = &H1
Public Const RESOURCETYPE_DISK = &H1
Public Const RESOURCETYPE_PRINT = &H2
Public Const RESOURCETYPE_ANY = &H0
Public Const RESOURCE_CONNECTED = &H1
Public Const RESOURCE_REMEMBERED = &H3
Public Const RESOURCE_GLOBALNET = &H2
Public Const RESOURCEDISPLAYTYPE_DOMAIN = &H1
Public Const RESOURCEDISPLAYTYPE_GENERIC = &H0
Public Const RESOURCEDISPLAYTYPE_SERVER = &H2
Public Const RESOURCEDISPLAYTYPE_SHARE = &H3
Public Const RESOURCEUSAGE_CONNECTABLE = &H1
Public Const RESOURCEUSAGE_CONTAINER = &H2Public Function MapDrive(LocalDrive As String, RemoteDrive As String, Optional UserName As String, Optional PassWord As String) As Boolean
    Dim NetR As NETRESOURCE
    Dim ErrInfo As Long
    
    NetR.dwScope = RESOURCE_GLOBALNET
    NetR.dwType = RESOURCETYPE_DISK
    NetR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
    NetR.dwUsage = RESOURCEUSAGE_CONNECTABLE
    NetR.lpLocalName = Left(LocalDrive, 1) & ":"
    NetR.lpRemoteName = RemoteDrive
    
    ErrInfo = WNetAddConnection2(NetR, PassWord, UserName, CONNECT_UPDATE_PROFILE)
    
    If ErrInfo = NO_ERROR Then
        MapDrive = True
    Else
        MapDrive = False
    End If
End Function

解决方案 »

  1.   

    Option ExplicitPrivate Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
    "WNetAddConnection2A" _
    (lpnetNetResourceesource As NETRESOURCE, _
    ByVal lpPassword As String, _
    ByVal lpUserName As String, _
    ByVal dwFlags As Long) As LongPrivate Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias _
    "WNetCancelConnection2A" _
    (ByVal lpName As String, _
    ByVal dwFlags As Long, _
    ByVal fForce As Long) As LongPrivate Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        lpLocalName As String
        lpRemoteName As String
        lpComment As String
        lpProvider As String
    End TypePublic Const NO_ERROR = 0Const CONNECT_UPDATE_PROFILE = &H10
    Const RESOURCETYPE_ANY = &H10
    Const RESOURCETYPE_DISK = &H20
    Const RESOURCETYPE_PRINT = &H30
    Const RESOURCE_CONNECTED = &H10
    Const RESOURCE_GLOBALNET = &H20
    Const RESOURCE_REMEMBERED = &H30
    Const RESOURCEDISPLAYTYPE_DOMAIN = &H10
    Const RESOURCEDISPLAYTYPE_SERVER = &H20
    Const RESOURCEDISPLAYTYPE_SHARE = &H30
    Const RESOURCEDISPLAYTYPE_GENERIC = &H40
    Const RESOURCEUSAGE_CONNECTABLE = &H10
    Const RESOURCEUSAGE_CONTAINER = &H20Public Function ConnectToNet(strFileName As String, strPassWord As String) As LongDim netNetResource As NETRESOURCE
    Dim lngRetureVal As LongnetNetResource.dwScope = RESOURCE_GLOBALNET
    netNetResource.dwType = RESOURCETYPE_DISK
    netNetResource.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
    netNetResource.dwUsage = RESOURCEUSAGE_CONNECTABLEnetNetResource.lpLocalName = vbNullString
    netNetResource.lpRemoteName = strFileNamelngRetureVal = WNetAddConnection2(netNetResource, strPassWord, 0, CONNECT_UPDATE_PROFILE)
    ConnectToNet = lngRetureVal
    If lngRetureVal = NO_ERROR Then
       MsgBox "已成功连接", vbInformation
    Else
        MsgBox "ERROR: " & Chr(13) & "连接失败!!!", vbExclamationEnd IfEnd FunctionPublic Function DisconnectToNet(strFileName As String) As Long
    Dim lngRetureVal As Long
    Dim strLocalName As StringstrLocalName = strFileName
    lngRetureVal = WNetCancelConnection2(strLocalName, CONNECT_UPDATE_PROFILE, False)End Function以上代码在仓促中完成,可能有些问题,但大至意思如此