是否有一个事件让我知道是否安装了SD卡?必须复制几百张卡

时间:2012-04-23 06:22:55

标签: c# windows sd-card

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

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

但我无法相信没有办法:(

我的问题有点背景:

我必须手动复制800张SD卡,这是一次性的事情,而且我想制作一个小插件,一旦我插入一张卡就启动copyjob,这样你就不必点击任何按钮了。

2 个答案:

答案 0 :(得分:3)

这不完全是您正在寻找的,但可能是另一种解决方案:

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

修改

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

答案 1 :(得分:0)

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

我是你,这就是我要做的事情:

  1. 从目标驱动器中获取文件列表(让我们假设它始终是相同的驱动器):http://www.dotnetperls.com/directory-getfiles
  2. 如果列表长度为0(即没有文件),则假定没有安装任何内容
  3. 如果列表长度不是0,请复制文件。