18.2.2 映射网络驱动器
Windows提供的“映射网络驱动器”命令准许用户在“我的电脑”或“Windows资源管理器”中显示网络资源,这使得网络资源更易于查找。对于经常使用的网络资源或者当准确知道想要连接的网络路径和资源名时,可以使用“映射网络驱动器”。设置“映射网络驱动器”可以根据WNetAddConnection2函数连接到指定的网络资源,并用指定的盘符代表这个连接,再使用WNetAddConnection2函数取消到指定网络资源的连接即可。其中,WNetAddConnection2函数是用于创建同一个网络资源的连接。
语法:
DWORD WNetAddConnection2( LPNETRESOURCE lpNetResource,LPCTSTR lpPassword,LPCTSTR lpUsername,DWORD dwFlags );
|
WNetAddConnection2函数参数说明如表18.2所示。
表18.2 WNetAddConnection2函数参数说明
参 数 名 称 参 数 说 明
lpNetResource 为NETRESOURCE结构指针,标识网络资源
lpPassword 可选的一个密码。如为vbNullString,表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpUsername 用于连接的用户名。如为vbNullString,表示使用当前用户
dwFlags 设为零;或指定常数CONNECT_UPDATE_PROFILE,表示创建永久性连接。
下面根据一个例子来介绍如何使用“映射网络驱动器”命令,具体操作步骤如下。
ch1802实例位置:mr\18\sl\02
(1)新建一个基于对话框的应用程序,设计对话框资源如图18.3所示。
(2)处理“…”按钮单击事件,选择网络目录。
void CNetDiskDlg::OnBrown() { UpdateData(TRUE); BROWSEINFO bInfo; bInfo.hwndOwner = this->m_hWnd; bInfo.pidlRoot = NULL; bInfo.pszDisplayName = NULL; bInfo.lpszTitle = "浏览文件夹"; bInfo.ulFlags = 0; bInfo.lpfn = NULL; bInfo.lParam = 0; bInfo.iImage = 0; //弹出文件浏览对话框 ITEMIDLIST* pItemList = SHBrowseForFolder(&bInfo); CString folderdir ="C:\\"; //获取用户选择的目录 SHGetPathFromIDList(pItemList,folderdir.GetBuffer(0)); m_Netdir = folderdir; UpdateData(FALSE); }
|
(3)处理“添加”按钮的单击事件,将网络目录映射到本地磁盘。
void CNetDiskDlg::OnAddnetdisk() { UpdateData(); //定义网络资源 NETRESOURCE nsource; nsource.dwScope = RESOURCE_GLOBALNET; nsource.dwType =RESOURCETYPE_DISK; nsource.dwDisplayType = RESOURCEDISPLAYTYPE_GENERIC; nsource.dwUsage = RESOURCEUSAGE_CONNECTABLE; nsource.lpLocalName = m_LocalDisk.GetBuffer(0); nsource.lpRemoteName = m_Netdir.GetBuffer(0); nsource.lpProvider = NULL; nsource.lpComment = NULL; //添加网络资源 DWORD ret = WNetAddConnection2(&nsource,NULL,NULL,0);if (ret==NO_ERROR) { MessageBox("设置成功"); } else { MessageBox("设置失败"); } }
|
(4)运行程序,效果如图18.4所示。
图18.3 资源设计窗口

图18.4 映射网络驱动器
【责任编辑:
阚书 TEL:(010)68476606】