登录已断开连接时

时间:2015-08-05 19:15:33

标签: windows winapi network-drive net-use

Windows 7中的初始情况(在8.1和10中显然相同):

  1. 创建持久性(!)网络驱动器映射(a.k.a。"登录时重新连接")。
  2. 现在物理断开网络文件夹(拔下电缆或关闭目标系统)
  3. 注销然后重新开启。气球消息将告诉"无法重新连接所有网络驱动器",但驱动器仍将在资源管理器中可见(带红叉)。
  4. 此时我想通过应用程序中的代码删除该网络驱动器。

    为此,我使用WNetCancelConnection2(在任何其他情况下都可以正常工作),但是为了使您更容易重现,您也可以使用命令行。 运行命令:

    net use Z: /delete
    

    (或您使用的任何驱动器号)。它会告诉您它已成功完成。运行"净使用"将显示没有连接的网络驱动器。但是,在资源管理器中,驱动器仍在那里!现在右键单击它并选择断开连接将导致错误。要删除该驱动器,必须先注销然后重新启动,或者杀死explorer.exe并再次运行它。

    有趣的是,如果不是通过代码或命令行删除驱动器,而是在资源管理器中右键单击它并断开连接,它可以完美地工作!因此,右键单击选项的作用与" net use"不同。和提到的API调用。我真的很想知道它做了什么

    那么这里的问题是什么?以及如何解决?任何编程语言的任何解决方案都可以。提前谢谢。

0 个答案:

没有答案