新聞| | PChome| 登入
2007-10-25 22:55:48 | 人氣159| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

設定/取消 網路磁碟機

來源:cww

使用方法:

建立連線 
  Function AddConnection(ByVal RemoteLocation As String, _
                         ByVal LocalDriver As String, _
                         ByVal Passwd As String, _
                         ByVal UserName As String) As Boolean
   RemoteLocation  : 為網路磁碟機原始來源,格式為 
                     \\RemoteComputer\ShareDirectory
   LocalDriver     : 對應本機的磁碟機代號,如: "H:"
   Passwd          : 存取網路磁碟機的Password,傳Null表示不用密碼
   UserName        : 存取網路磁碟機的使用者代號
   成功時傳回True,否則為False

例: 
   Call AddConnection("\\Shih\cmias", "x:", vbNullString, "cww")

取消連線
 Function CancelConnection(ByVal LocalDriver As String, _
                           ByVal ForceClose As Boolean) As Boolean
   LocalDriver   : 對應本機的磁碟機代號,如: "H:"
   ForceClose    : True表示強迫結束連線,而不管有沒有程式正與之連線
   成功時傳回True,否則為False
例:
  Call CancelConnection("x:", True)

以下在.bas
Option Explicit

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 Type
Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long
Declare Function WNetGetLastError Lib "mpr.dll" Alias "WNetGetLastErrorA" (lpError As Long, ByVal lpErrorBuf As String, ByVal nErrorBufSize As Long, ByVal lpNameBuf As String, ByVal nNameBufSize As Long) As Long

Public Const RESOURCE_PUBLICNET = &H2
Public Const RESOURCETYPE_ANY = &H0
Public Const RESOURCEDISPLAYTYPE_GENERIC = &H0
Public Const RESOURCEUSAGE_CONNECTABLE = &H1
Public Const CONNECT_UPDATE_PROFILE = &H1
Public Function AddConnection(ByVal RemoteLocation As String, ByVal LocalDriver As String, _
                              ByVal Passwd As String, ByVal UserName As String) As Boolean
Dim ne As NETRESOURCE, i As Long
Dim errstr As String, errpriv As String, erno As Long

ne.dwDisplayType = RESOURCEDISPLAYTYPE_GENERIC
ne.dwScope = RESOURCE_PUBLICNET
ne.dwType = RESOURCETYPE_ANY
ne.dwUsage = RESOURCEUSAGE_CONNECTABLE
ne.lpComment = vbNullString
ne.lpLocalName = LocalDriver
ne.lpProvider = vbNullString
ne.lpRemoteName = RemoteLocation

i = WNetAddConnection2(ne, Passwd, UserName, 0)
If i = 0 Then
   AddConnection = True
Else
  AddConnection = False
  errstr = String(256, 0)
  errpriv = String(256, 0)
  i = WNetGetLastError(erno, errstr, 256, errpriv, 256)
  errstr = Left(errstr, InStr(1, errstr, Chr(0)) - 1)
  MsgBox errstr, vbCritical
End If
End Function

Public Function CancelConnection(ByVal LocalDriver As String, ByVal ForceClose As Boolean) As Boolean
Dim i As Long
Dim errstr As String, errpriv As String, erno As Long

i = WNetCancelConnection2(LocalDriver, 0, IIf(ForceClose, 1, 0))
If i = 0 Then
   CancelConnection = True
Else
  CancelConnection = False
  errstr = String(256, 0)
  errpriv = String(256, 0)
  i = WNetGetLastError(erno, errstr, 256, errpriv, 256)
  errstr = Left(errstr, InStr(1, errstr, Chr(0)) - 1)
  MsgBox errstr, vbCritical
End If

End Function

台長: Kenny
人氣(159) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 教育學習(進修、留學、學術研究、教育概況) | 個人分類: 程式設計 |
此分類下一篇:讀取檔案的建立時間及存取時間
此分類上一篇:取得Disk Driver List與各個Driver的型態

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文