'格式shell "net use \\电脑名 密码 /user:用户"例如: Shell "net use \\192.168.1.200 ABC/user:1234"
是不是类似如下: Shell "net use z: \\192.168.1.200 ABC/user:1234" 如果成功就会有映射网络驱动器Z: 是不是要判断z:是否存在? 如何判断?
'试一下这样.Private Const CONNECT_UPDATE_PROFILE = &H1Private Const RESOURCE_CONNECTED As Long = &H1& Private Const RESOURCE_GLOBALNET As Long = &H2& Private Const RESOURCETYPE_DISK As Long = &H1& Private Const RESOURCEDISPLAYTYPE_SHARE& = &H3 Private Const RESOURCEUSAGE_CONNECTABLE As Long = &H1&Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETCONNECT, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPrivate Type NETCONNECT 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 TypePrivate Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long Public Function MapDrive(LocalDrive As String, RemoteDrive As String, Optional Username As String, Optional Password As String) As Boolean Dim NetR As NETCONNECT NetR.dwScope = RESOURCE_GLOBALNET NetR.dwType = RESOURCETYPE_DISK NetR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE NetR.dwUsage = RESOURCEUSAGE_CONNECTABLE NetR.lpLocalName = Left$(LocalDrive, 1) & ":" NetR.lpRemoteName = RemoteDrive MapDrive = (WNetAddConnection2(NetR, Password, Username, CONNECT_UPDATE_PROFILE) = 0) End Function Public Function CancelConnection(LocalDrive As String) As Boolean CancelConnection = (WNetCancelConnection2(LocalDrive, CONNECT_UPDATE_PROFILE, 0) = 0) End FunctionPrivate Sub Command1_Click() Shell "net use \\192.168.1.200 ABC /user:ABC"If MapDrive("I:", "\\192.168.1.200\文件名") Then Call CancelConnection("I:") '删除映射 MsgBox "登录成功" Else MsgBox "登录失败" End If End Sub
Dim WshShell, oExec Set WshShell = CreateObject("WScript.Shell") '如下正行登陆,并查看结果 Set oExec = WshShell.Exec("net use \\电脑名 密码 /user:用户")MsgBox oExec.StdErr.ReadAll MsgBox oExec.StdOut.ReadAll'如下查看登陆状态 Set oExec = WshShell.Exec("net use")MsgBox oExec.StdErr.ReadAll MsgBox oExec.StdOut.ReadAll
Shell "net use z: \\192.168.1.200 ABC/user:1234"
如果成功就会有映射网络驱动器Z:
是不是要判断z:是否存在?
如何判断?
Private Const RESOURCE_GLOBALNET As Long = &H2&
Private Const RESOURCETYPE_DISK As Long = &H1&
Private Const RESOURCEDISPLAYTYPE_SHARE& = &H3
Private Const RESOURCEUSAGE_CONNECTABLE As Long = &H1&Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETCONNECT, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPrivate Type NETCONNECT
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 TypePrivate Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long
Public Function MapDrive(LocalDrive As String, RemoteDrive As String, Optional Username As String, Optional Password As String) As Boolean
Dim NetR As NETCONNECT NetR.dwScope = RESOURCE_GLOBALNET
NetR.dwType = RESOURCETYPE_DISK
NetR.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
NetR.dwUsage = RESOURCEUSAGE_CONNECTABLE
NetR.lpLocalName = Left$(LocalDrive, 1) & ":"
NetR.lpRemoteName = RemoteDrive MapDrive = (WNetAddConnection2(NetR, Password, Username, CONNECT_UPDATE_PROFILE) = 0)
End Function
Public Function CancelConnection(LocalDrive As String) As Boolean
CancelConnection = (WNetCancelConnection2(LocalDrive, CONNECT_UPDATE_PROFILE, 0) = 0)
End FunctionPrivate Sub Command1_Click()
Shell "net use \\192.168.1.200 ABC /user:ABC"If MapDrive("I:", "\\192.168.1.200\文件名") Then
Call CancelConnection("I:") '删除映射
MsgBox "登录成功"
Else
MsgBox "登录失败"
End If
End Sub
Set WshShell = CreateObject("WScript.Shell")
'如下正行登陆,并查看结果
Set oExec = WshShell.Exec("net use \\电脑名 密码 /user:用户")MsgBox oExec.StdErr.ReadAll
MsgBox oExec.StdOut.ReadAll'如下查看登陆状态
Set oExec = WshShell.Exec("net use")MsgBox oExec.StdErr.ReadAll
MsgBox oExec.StdOut.ReadAll
如果网络不通而无法连接时,程序会等很长时间,影响了运行,我想设定一个时间上线,比如1s,如果超过一秒就停止登入,认为无法连接。
请问如何实现啊?