使用空本地名称调用 WNetAddConnection2
Posted
技术标签:
【中文标题】使用空本地名称调用 WNetAddConnection2【英文标题】:Calling WNetAddConnection2 with empty local name 【发布时间】:2010-02-19 14:22:27 【问题描述】:我有一个小程序,它只检查指定文件是否位于未映射到计算机上的指定网络驱动器上。 为了检查这一点,我暂时映射到网络位置,检查文件是否存在,然后取消映射驱动器。我现在发现我可以使用空的本地名称调用 WNetAddConnection2(MSDN:如果字符串为空,或者 lpLocalName 为 NULL,则该函数在不重定向本地设备的情况下连接到网络资源。)。 仅用于显示代码:
NETRESOURCE nr;
nr.dwType = RESOURCETYPE_DISK;
nr.lpLocalName = NULL; // explicitly set this to NULL
nr.lpRemoteName = "\\\\computer\\c$";
nr.lpProvider = NULL;
DWORD dwResult = WNetAddConnection2(&nr, cstrPassword, cstrUsername, FALSE);
if (dwResult != 0)
return false;
CPath cLocation(cstrFileLocation);
return cLocation.FileExists() != FALSE;
到目前为止,代码运行良好。但是我现在想知道的是,WNetAddConnection2 的调用是否有任何问题?我无法调用 WNetCancelConnection,因为我没有本地名称。那么我的电脑上现在有某种僵尸吗? 如何查看计算机上的所有网络连接?最好是命令提示符的简短命令(类似于 NET USE)。
【问题讨论】:
【参考方案1】:好的,想通了。我可以致电WNetCancelConnection2(nr.lpRemoteName, 0, TRUE);
正确取消映射驱动器。
【讨论】:
谢谢,对我有用!以上是关于使用空本地名称调用 WNetAddConnection2的主要内容,如果未能解决你的问题,请参考以下文章