调用例子
NETRESOURCE myNetResource = new NETRESOURCE();
myNetResource.dwScope = 2; //2:RESOURCE_GLOBALNET
myNetResource.dwType = 1; //1:RESOURCETYPE_ANY
myNetResource.dwDisplayType = 3; //3:RESOURCEDISPLAYTYPE_GENERIC
myNetResource.dwUsage = 1; //1: RESOURCEUSAGE_CONNECTABLE
myNetResource.LocalName = "T:";
myNetResource.RemoteName = @"//10.72.27.22/test";
myNetResource.Provider = null;
uint nret = WNetAddConnection2(myNetResource, "tt", "tt", 0);
删除映射网络驱动器调用的代码如下:
uint nret = WNetCancelConnection2( yourNetDriveName, 1, true);
其中关键技术是调用了两个Windows API函数WNetAddConnection2和WNetCancelConnection2,下面分别加以介绍:
1、WNetAddConnection2
其作用是创建一个同网络资源的连接,当调用成功时函数返回0。其参数说明如下:
lpNetResource:数据类型是结构NETRESOURCE,该结构中的各个字段对要连接的网络资源进行了定义,包括远程计算机共享文件夹的名字(如图2所示,在“远程共享文件夹”文本框中的“//1.1.1.1/share”),以及本地系统为网络驱动器分配的盘符“X:”,等等;
lpPassword:数据类型为string,该参数是个可选参数,用来设置网络密码,对应本程序控件Text3中的文本。如果该参数的值等于vbNullString,则表示采用系统当前登录用户的默认密码;如果是一个空字符串,则表示不需要任何密码就可访问网络资源;
lpUserName:数据类型为string,指定用于网络连接的用户名,对应本程序控件Text2中的文本。如果该参数的值等于vbNullString,则表示使用系统当前的登录用户名;
dwFlags:数据类型为long,该参数可以设为0,也可以指定常量CONNECT_UPDATE_PROFILE(表示创建永久性的网络连接)。
2、WNetCancelConnection2
其作用是断开一个网络连接,当调用成功时函数返回0。其参数说明如下:
lpName:数据类型是string,用来指定已连接资源的远程名称或本地名称,具体在本文中就是给远程共享文件夹分配的盘符:“X:”;
dwFlags:数据类型为long,可以取两个值,0或CONNECT_UPDATE_PROFILE,如果为0,而且建立的网络连接是永久性连接,则在Windows下次重新启动时仍会重新连接;
fForce:数据类型为long,如果为True,那么,即使连接的网络资源上有正在打开的文件或作业,也强制断开网络连接,这样就会造成数据的丢失、不完整性,建议将该参数的值设为False,如程序中所做。
==========================================