影射异地磁盘到本地

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值