如何调用WNetGetConnection等API函数
编号:QA000095
建立日期: 1998年11月12日 最后修改日期:1998年11月12日
所属类别:
洪波:
本人在浏览答案中见到了QA000040 "如何判断工作站是否已连网"的问答,但本人对API函数很不了解,因此特再次请问Win32 API的WNetGetConnection、WnetOpenEnum等到函数具体如何用法,它的参数在VB内如何设置,能有个例子是最好的了!
回答:
这几个API的声明可以在Win32api.txt找到。使用说明可以参考Win32SDK.hlp的帮助。下面我给出一个例子,它是得到一个网络驱动器的UNC路径(“\\服务器\共享路径”)。
' 32-bit Function version.
' Enter this declaration on a single line.
Declare Function WNetGetConnection32 Lib "MPR.DLL" Alias _
"WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal _
lpszRemoteName As String, lSize As Long) As Long
' 32-bit declarations:
Dim lpszRemoteName As String
Dim lSize As Long
' Use for the return value of WNetGetConnection() API.
Const NO_ERROR As Long = 0
' The size used for the string buffer. Adjust this if you
' need a larger buffer.
Const lBUFFER_SIZE As Long = 255
Sub GetNetPath()
' Prompt the user to type the mapped drive letter.
DriveLetter = UCase(InputBox("Enter Drive Letter of Your Network" & _
"Connection." & Chr(10) & "i.e. F (do not enter a colon)"))
' Add a colon to the drive letter entered.
DriveLetter = DriveLetter & ":"
' Specifies the size in charaters of the buffer.
cbRemoteName = lBUFFER_SIZE
' Prepare a string variable by padding spaces.
lpszRemoteName = lpszRemoteName & Space(lBUFFER_SIZE)
' Return the UNC path (\\Server\Share).
lStatus& = WNetGetConnection32(DriveLetter, lpszRemoteName, _
cbRemoteName)
' Check to see if WNetGetConnection() succeeded. WNetGetConnection()
' returns 0 (NO_ERROR) if it succesfully retrieves the UNC path.
If lStatus& = NO_ERROR Then
' Display the UNC path.
MsgBox lpszRemoteName, vbInformation
Else
' Unable to obtain the UNC path.
MsgBox "Unable to obtain the UNC path.", vbInformation
End If
End Sub
此问题由李海回答。
| |
|
|
| |
|
|