Windows 7 中的初始情况(8.1 和 10 显然相同):
- 创建持久(!)网络驱动器映射(又名“登录时重新连接”)。
- 现在从网络文件夹物理断开(拔下电缆或关闭目标系统)
- 注销并重新打开。气球消息将告诉“无法重新连接所有网络驱动器”,但驱动器仍将在资源管理器中可见(带有红色叉号)。
此时,我想通过代码从我的应用程序中删除该网络驱动器。
为此,我使用了 WNetCancelConnection2 (在任何其他情况下都可以正常工作),但为了让您更容易重现,您也可以使用命令行。运行命令:
net use Z: /delete
(或您使用的任何驱动器号)。它会告诉你它已成功完成。运行“net use”将显示没有连接网络驱动器。但是,在资源管理器中,驱动器仍然存在!现在右键单击它并选择断开连接将导致错误。要删除该驱动器,必须注销并再次打开或杀死 explorer.exe 并再次运行它。
有趣的是,如果不是通过代码或命令行删除驱动器,而是在资源管理器中右键单击它并从那里断开它,它可以完美运行!因此,该右键单击选项的作用与“网络使用”和提到的 API 调用不同。我真的很想知道它的作用。
那么这里有什么问题呢?以及如何解决?任何编程语言的任何解决方案都可以。提前致谢。