由于要打开局域网上的一台机器上的文件,需要先登陆那台机器,就要弹出登陆对话框,然后输入帐号密码。现在我知道帐号密码,但是不想在对话框中输入,而是直接就登陆,请问有什么好办法吗

解决方案 »

  1.   

    Option ExplicitPrivate 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 TypeConst NO_ERROR = 0
    Const CONNECT_UPDATE_PROFILE = &H1Const RESOURCETYPE_DISK = &H1
    Const RESOURCETYPE_PRINT = &H2
    Const RESOURCETYPE_ANY = &H0
    Const RESOURCE_CONNECTED = &H1
    Const RESOURCE_REMEMBERED = &H3
    Const RESOURCE_GLOBALNET = &H2
    Const RESOURCEDISPLAYTYPE_DOMAIN = &H1
    Const RESOURCEDISPLAYTYPE_GENERIC = &H0
    Const RESOURCEDISPLAYTYPE_SERVER = &H2
    Const RESOURCEDISPLAYTYPE_SHARE = &H3
    Const RESOURCEUSAGE_CONNECTABLE = &H1
    Const RESOURCEUSAGE_CONTAINER = &H2Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" _
                                                    (lpNetResource 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 LongPublic Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" _
                            (ByVal lpBuffer As String, nSize As Long) As Long
                
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
                   (ByVal lpBuffer As String, nSize As Long) As Long
    '返回网络资源的UNC路径
    Public Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" _
                                                        (ByVal lpszLocalName As String, _
                                                         ByVal lpszRemoteName As String, _
                                                         cbRemoteName As Long) As Long
    Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long
    ''**建立网络映射**
    'NETFLAG=MapDriv(DrivName, NetPath,Password, UserName)'参数说明:
    'DrivName 映射成的本地驱动器名
    'NetPath  网络路径
    'Password 密码(如果没有则用"")
    'UserName 用户名(如果没有则用"")
    '返回值 =TRUE 成功连接,=FALSe 连接失败
    '============================================
    Public Function MapDriv(DrivName As String, NetPath As String, PassWord As String, UserName As String) As Boolean
    '建立网络连接
      Dim NetR As NETRESOURCE
      Dim ErrInfo As Long  With NetR
           .dwScope = RESOURCE_GLOBALNET
           .dwType = RESOURCETYPE_DISK
           .dwDisplayType = RESOURCEDISPLAYTYPE_SHARE
           .dwUsage = RESOURCEUSAGE_CONNECTABLE
           .lpLocalName = UCase(DrivName) '映射成本机盘符
           .lpRemoteName = UCase(NetPath) '映射的网络路径
      End With
    '建立连接,返回ERR代码
      ErrInfo = WNetAddConnection2(NetR, PassWord, UserName, 0) 'CONNECT_UPDATE_PROFILE)
    '检查代码
      If ErrInfo = NO_ERROR Then
         MapDriv = True
      Else
         MapDriv = False
      End If
    End Function
    ''**断开网络驱动器**
    'FLAG=DisNet(NetDriv)
    'NetDriv 断开的网络驱动器名
    '返回值 =True 成功,=False 失败
    '=====================================
    Public Function DisNet(NetDriv As String) As Boolean
      Dim ErrInfo As Long
      Dim ErrRe As Long
      Dim strLocalName As String
      strLocalName = UCase(NetDriv) '断开的映射盘
      '断开,返回ERR代码
      ErrRe = WNetCancelConnection(strLocalName, True)
      ErrInfo = WNetCancelConnection2(strLocalName, CONNECT_UPDATE_PROFILE, True)
      '检查代码
      If ErrInfo = NO_ERROR Then
         DisNet = True
      Else
         DisNet = False
      End If
    End Function
    '