2

是否有 Windows 事件或机制可用于了解 SD 卡是否安装在运行 C# 中的 Windows XP/Vista/7 的 PC 上?

直到今天,我找到了一种使用 WM 消息来了解是否连接了新驱动器的方法,以及一种使用 WQL 的方法,它们适用于 CD/DVD 和 USB,但没有人能够检测到我是否将 SD 卡插入 PC . 这似乎与 USB 驱动器不同,我猜这是因为“阅读器”硬件已经连接到 PC。

但我不敢相信没有办法:(

我的问题的一点背景:

我必须手动复制 800 张 SD 卡,这是一次性的事情,我想制作一个小应用程序,在插入卡后立即启动复制作业,这样您就不必单击任何按钮。

4

2 回答 2

2

这不完全是您正在寻找的,但也许是一个替代解决方案:

有一个指南如何在 codeproject 上将您的应用注册为自动播放处理程序。然后,您可以选中告诉 Windows 始终使用此操作的框,然后就可以了。

编辑:

另一种方法是使用在 codeproject 上也引入的 DriveDetector。此类将自动通知您有关已到达或已删除的驱动器,但我不确定这是否适用于闪存卡。

于 2012-04-23T06:32:20.453 回答
0

IIRC,Windows 7 禁用了除 CD/DVD/BD 之外的所有驱动器的自动播放。

如果我是你,我会这样做:

  1. 使用以下命令从目标驱动器获取文件列表(假设它始终是同一个驱动器):http: //www.dotnetperls.com/directory-getfiles
  2. 如果列表长度为 0(即没有文件),则假定没有安装任何内容
  3. 如果列表不是 0 长度,则复制文件。
于 2012-04-23T06:45:05.727 回答