热情软件屋

 

如何调用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

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio