Ras开头的?我怎么找不到?我看到的都是WNet开头的。例如:WNetAddConnection VB声明
Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long
说明
创建同一个网络资源的永久性连接
返回值
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
参数表
参数 类型及说明
lpszNetPath String,要连接的网络名
lpszPassword String,可选的一个密码。如为vbNullString,表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpszLocalName String,资源的本地名称。(例如,F: 和 LPT1:)
Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long
说明
创建同一个网络资源的永久性连接
返回值
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
参数表
参数 类型及说明
lpszNetPath String,要连接的网络名
lpszPassword String,可选的一个密码。如为vbNullString,表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpszLocalName String,资源的本地名称。(例如,F: 和 LPT1:)
就是water_j(随心所欲)的那几个,能不能讲的稍微详细些。
另外还有一个问题:许多网络记费软件都可以记录本次连接中上传和下载的数据量,这是如何得到的呢?
高手们指点一下吧,分不够我可以再开新贴~
Dim p_lngRtn As Long
Dim p_lngEnumHwnd As Long
Dim p_lngCount As Long
Dim p_lngLoop As Long
Dim p_lngBufSize As Long
Dim p_atypNetAPI(0 To MAX_RESOURCES) As NETRESOURCE, p_atypNetAPI1(0 To MAX_RESOURCES) As NETRESOURCE
Dim groupuser
p_lngEnumHwnd = 0&
p_lngRtn = WNetOpenEnum(dwScope:=RESOURCE_GLOBALNET, dwType:=RESOURCETYPE_ANY, dwUsage:=RESOURCEUSAGE_ALL, lpNetResource:=ByVal 0&, lppEnumHwnd:=p_lngEnumHwnd)
If p_lngRtn = NO_ERROR Then
p_lngCount = RESOURCE_ENUM_ALL
p_lngBufSize = UBound(p_atypNetAPI) * Len(p_atypNetAPI(0))
p_lngRtn = WNetEnumResource(pEnumHwnd:=p_lngEnumHwnd, lpcCount:=p_lngCount, lpBuffer:=p_atypNetAPI(0), lpBufferSize:=p_lngBufSize)
End If
If p_lngEnumHwnd <> 0 Then
Call WNetCloseEnum(p_lngEnumHwnd)
End If
p_lngRtn = WNetOpenEnum(dwScope:=RESOURCE_GLOBALNET, dwType:=RESOURCETYPE_ANY, dwUsage:=RESOURCEUSAGE_ALL, lpNetResource:=p_atypNetAPI(0), lppEnumHwnd:=p_lngEnumHwnd)
If p_lngRtn = NO_ERROR Then
p_lngCount = RESOURCE_ENUM_ALL
p_lngBufSize = UBound(p_atypNetAPI) * Len(p_atypNetAPI(0))
p_lngRtn = WNetEnumResource(pEnumHwnd:=p_lngEnumHwnd, lpcCount:=p_lngCount, lpBuffer:=p_atypNetAPI(0), lpBufferSize:=p_lngBufSize)
If p_lngCount > 0 Then
For p_lngLoop = 0 To p_lngCount - 1
p_lngRtn = WNetOpenEnum(dwScope:=RESOURCE_GLOBALNET, dwType:=RESOURCETYPE_ANY, dwUsage:=RESOURCEUSAGE_ALL, lpNetResource:=p_atypNetAPI(p_lngLoop), lppEnumHwnd:=p_lngEnumHwnd)
If p_lngRtn = NO_ERROR Then
p_lngCount = RESOURCE_ENUM_ALL
p_lngBufSize = UBound(p_atypNetAPI) * Len(p_atypNetAPI1(0))
p_lngRtn = WNetEnumResource(pEnumHwnd:=p_lngEnumHwnd, lpcCount:=p_lngCount, lpBuffer:=p_atypNetAPI1(0), lpBufferSize:=p_lngBufSize)
If p_lngCount > 0 Then
Dim i
For i = 0 To p_lngCount - 1
'------------------------如计算机机名不同本机名刚加入列表中------------------------------
groupuser = PointerToAsciiStr(p_atypNetAPI1(i).pRemoteName)
If Right(groupuser, Len(groupuser) - 2) <> computername Then
If lsv1.FindItem(Right(groupuser, Len(groupuser) - 2)) Is Nothing Then
lsv1.ListItems.Add lsv1.ListItems.Count + 1, , Right(groupuser, Len(groupuser) - 2), , 2
End If
End If
Next i
End If
End If
Next p_lngLoop
End If
End If
If p_lngEnumHwnd <> 0 Then
Call WNetCloseEnum(p_lngEnumHwnd)
End If【操作系统】
Win9X:Yes
WinNT:Yes
【说明】
启动对网络资源进行枚举的过程。这个函数会返回由WNetEnumResource函数用于枚举资源所用的一个句柄
【返回值】
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
【其它】
【参数表】
dwScope -------- Long,指定要枚举的资源范围。可设为下述常数之一:
RESOURCE_CONNECTED
枚举已连接的资源(忽略dwUsage)
RESOURCE_GLOBALNET
枚举所有资源
RESOURCE_REMEMBERED
只枚举永久性连接
dwType --------- Long,下述常数之一
RESOURCE_ANY
枚举所有类型的网络资源
RESOURCE_DISK
枚举磁盘资源
RESOURCE_PRINT
枚举打印资源
dwUsage -------- Long,可设为零,表示枚举所有资源;或设为下述常数的一个或两个:
RESOURCEUSAGE_CONNECTABLE
只枚举那些能够连接的资源
RESOURCEUSAGE_CONTAINER
只枚举包含了其他资源的资源
lpNetResource -- NETRESOURCE,这个结构指定了一个容器资源。该函数会枚举包含于这里指定的某个指定资源内的资源。如设为NULL(把声明变成ByVal
As Long),那么函数会枚举顶级网络资源。倘若在dwScope参数里没有指定RESOURCE_GLOBALNET,那么必须为NULL
lphEnum -------- Long,指定一个变量,用于装载一个枚举句柄。该句柄由WNetEnumResource函数使用。必须用WNetCloseEnum函数将其清除