使用空本地名称调用 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的主要内容,如果未能解决你的问题,请参考以下文章

使用空参数和 SqlDataAdapter 调用存储过程

HTML使用链接调用本地exe文件

面向对象 - 总结

一个空运行的装饰器

苹果iOS 11加强本地化:SafariiMessage都要改名

php 保存编辑器内容中的远程图片为本地图片