强制win8刷新映射驱动器

时间:2014-05-04 15:28:35

标签: delphi delphi-5 mapped-drive

我的家庭网络上有一台NAS,它被映射为驱动器K:。有时NAS没有准备就绪,因为win启动并且驱动器在文件资源管理器中以红色“X”显示。如果我点击显示X的驱动器,它会立即显示文件夹,向我建议它现在已经映射但是在启动时没有。

我有一个非常简单的MP3播放器,我写的相信win-X而不是映射驱动器的实际状态,如果这是有道理的。如果我单击要播放的MP3文件,则表示该驱动器不可用。如果我首先在文件资源管理器中单击该驱动器,然后单击MP3文件,它就可以正常工作。

如何在我的MP3播放器中为该映射驱动器状态添加“刷新”?

1 个答案:

答案 0 :(得分:0)

我已经看到有人为此建议了一个脚本化的workarround - 只是尝试访问驱动器指向的路径。 如果您的驱动器Z:指向\\ server \ share,那么这可能有效(在批处理脚本中使用):

pushd \\server\share

以编程方式,您可以尝试使用WNetAddConnection2以及镜像映射驱动器参数的参数。样本算法:

  1. 获取驱动器的连接状态(WNetGetConnection)
  2. 如果状态为ERROR_CONNECTION_UNAVAIL则使用 WNetAddConnection2重新连接
  3. 在MSDN中查看WNetRestoreConnectionW function。 有用户Chesare在2011年1月14日发布了样本重新连接代码(在C / C ++中)。

    P.S。所有这些都没有经过测试,但可能对你有用 - 试试吧;)