【问题标题】:Calling WNetAddConnection2 with empty local name使用空本地名称调用 WNetAddConnection2
【发布时间】: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)。

【问题讨论】:

    标签: c++ wnet


    【解决方案1】:

    好的,想通了。我可以致电WNetCancelConnection2(nr.lpRemoteName, 0, TRUE); 正确取消映射驱动器。

    【讨论】:

    • 谢谢,对我有用!
    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2018-04-20
    • 2011-08-02
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多