1,WNetAddConnection
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:)
WNetCancelConnection
WNetCancelConnection
VB声明
Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long
说明
结束一个网络连接
返回值
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
参数表
参数 类型及说明
lpszName String,已连接资源的远程名称或本地名称
bForce Long,如为TRUE,表示断开连接(即使连接的资源上正有打开的文件或作业)
2,WNetAddConnection2
DWORD WNetAddConnection2( LPNETRESOURCE lpNetResource,LPCTSTR
lpPassword,LPCTSTR lpUsername,DWORD dwFlags );
WNetAddConnection2函数参数说明
参 数 名 称
参 数 说 明
lpNetResource
为NETRESOURCE结构指针,标识网络资源
lpPassword
可选的一个密码。如为vbNullString,表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpUsername
用于连接的用户名。如为vbNullString,表示使用当前用户
dwFlags
设为零;或指定常数CONNECT_UPDATE_PROFILE,表示创建永久性连接。
NETRESOURCE 结构体说明:
与网络有关的重要任务之一就是枚举,或者说获取可用网络资源的一个列表。个结构用以定义系统的的每个网络资源
字段 类型及说明
dwScope Long,下述常数之一:
RESOURCE_CONNECTED 枚举连接的资源
RESOURCE_GLOBALNET 枚举所有资源
RESOURCE_REMEMBERED 枚举永久性连接
dwType Long, 用于指定网络的资源类型,下述常数之一:
RESOURCETYPE_ANY 枚举所有资源
RESOURCETYPE_DISK 枚举磁盘
RESOURCETYPE_PRINT 枚举打印机
dwDisplayType Long,带有前缀RESOURCEDISPLAYTYPE的一个常数,对资源的类 型进行了定义(在网络浏览器中如何显示)
dwUsage Long,下述标志的一个或多个
RESOURCEUSAGE_CONNECTABLE 可同这个资源连接
RESOURCEUSAGE_CONTAINER 这个资源包含了可以枚举的额外资源
lpLocalName String,指定本地设备,将远程资源映射到此驱动器
lpRemoteName String,指定远程网络名
lpComment String,由网络供应商设置
lpProvider String,网络供应商的名字
WNetAddConnection2 实例:
包含头文件:加载动态链接库
#pragma comment(lib,"mpr")
NETRESOURCE netres; // NETRESOURCE数组结构的指针
memset(&netres, 0, sizeof(NETRESOURCE));
netres.dwScope=RESOURCE_CONNECTED;
netres.dwType=RESOURCETYPE_ANY;
netres.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
netres.dwUsage=RESOURCEUSAGE_CONNECTABLE;
netres.lpRemoteName = "123.45.678.9//C$"; //此时异地的C盘为共享
netres.lpLocalName = "X:";
DWORD d=WNetAddConnection2(&netres, "123", "123",CONNECT_UPDATE_PROFILE);
//密码和用户名为123,最后一个参数设为零或指定常数
//CONNECT_UPDATE_PROFILE ,表示创建永久性连接。
//此时 在Windows 资源管理器中可看到网络驱动器X:
switch(d)
{
case NO_ERROR:
AfxMessageBox("网络驱动器映射成功");
break;
case ERROR_BAD_PROFILE:
AfxMessageBox("ERROR_BAD_PROFILE");
break;
case ERROR_CANNOT_OPEN_PROFILE:
AfxMessageBox("ERROR_CANNOT_OPEN_PROFILE");
break;
case ERROR_DEVICE_IN_USE:
AfxMessageBox("ERROR_DEVICE_IN_USE");
break;
case ERROR_EXTENDED_ERROR:
AfxMessageBox("ERROR_EXTENDED_ERROR");
break;
case ERROR_NOT_CONNECTED:
AfxMessageBox("ERROR_NOT_CONNECTED");
break;
case ERROR_OPEN_FILES:
AfxMessageBox("ERROR_OPEN_FILES");
break;
default:
AfxMessageBox("未知错误,可能需要帐号和密码认证,或者该主机或文件不存在");
break;
}
WNetCancelConnection2( "X:",CONNECT_UPDATE_PROFILE, TRUE);
影射异地磁盘到本地
最新推荐文章于 2023-03-02 08:55:36 发布