如何在应用程序中映射网络驱动器

来源:互联网 发布:mysql连接池工作原理 编辑:程序博客网 时间:2024/05/21 08:38
 ---- 我们知道在WINDOWS的平台上可以实现网络驱动器的映射,但在应用程序中如何映 射呢?以下的这个小程序就是演示如何在用户的应用程序中映射网络驱动器。在这里主 要用到了WINDOWS的两个API函数WNetAddConnection2(建立网络驱动器的映射)和 WNetCancelConnection2(取消网络驱动器的映射)以及一个NETRESOURCE结构(用来设 置网络资源)。---- 为了节省篇幅,我在这里只列出本演示程序的主要部分 OnMountButton (为建立网络驱动器的映射)和OnUnmountButton(为取消网络驱动器 的映射)。其中在下面的出现m_NetpathEdit 和m_DriveEdit 为用VC++定义的CEdit控 键。分别接收输入的网络路径和要建立的本地的驱动器盘符。它们都放置在一个对话框 中,如下图所示(略) ---- 建立网络驱动器的映射。
void CMountDlg::OnMountButton() { // TODO: Add your control notification handler code here char netpath[MAX_PATH];//输入的网络路径 m_NetpathEdit.GetWindowText(netpath, sizeof(netpath)); char drv[MAX_PATH]; //本地的驱动器盘符 m_DriveEdit.GetWindowText(drv, sizeof(drv)); NETRESOURCE netres; netres.dwScope=RESOURCE_GLOBALNET; netres.dwType=RESOURCETYPE_ANY; netres.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC; netres.dwUsage=RESOURCEUSAGE_CONNECTABLE; netres.lpLocalName=drv; netres.lpRemoteName=netpath; netres.lpComment=NULL; netres.lpProvider=NULL; DWORD rslt=WNetAddConnection2(&netres, NULL, NULL, 0); CString str; str.Format("WNetAddConnection2() return code=%d", rslt); MessageBox(str); } 

取消网络驱动器的映射
void CMountDlg::OnUnmountButton() {// TODO: Add your control notification handler code here char drv[MAX_PATH]; //本地的驱动器盘符 m_DriveEdit.GetWindowText(drv, sizeof(drv)); DWORD rslt=WNetCancelConnection2(drv, 0, FALSE); CString str; str.Format("WNetCancelConnection2() return code=%d", rslt); MessageBox(str); //显示信息成功与否 return code =0 成功 否则 建立失败 } 

---- 本程序在VC++6.0及windows95/98/nt下编译通过。注意在程序的编译连接中加入 mpr.lib,我们用两个API函数在这个库中。