寻找用于检测可移动驱动器(USB闪存)的C#代码

时间:2009-04-03 21:12:11

标签: c# windows-vista usb-drive

我正在寻找一个C#代码段来通知我在Windows Vista(或win7)中将USB驱动器插入我的电脑的时间

4 个答案:

答案 0 :(得分:12)

Codeproject上有一个名为DriveDetector的类,听起来像是你想要的。

答案 1 :(得分:3)

看看WM_DEVICECHANGE。插入驱动器时应发送此消息。

答案 2 :(得分:1)

我知道这不是你要求的,但如果你想在任何时候检查可用的设备,还有另一种方法。您可以使用System.Management namespace中的WMI类,我使用过这种方法,效果很好。

如果您查看this answer,它会显示如何枚举系统上的所有驱动器。然后,您可以查看驱动器类型,以确定它是否是USB记忆棒。

答案 3 :(得分:0)

我编写了一个powershell模块,它使用System.Management.ManagementEventWatcher和WMI类Win32_VolumeChangedEvent来表示您可以在powershell中注册的新事件,包括设备删除,添加等。您应该能够找出相关的管道我的这篇博文:

http://www.nivot.org/nivot2/post/2008/08/16/AutoMountunmountNewPSDrivesForRemovableDrivesAndNetworkSharesInPowerShellV2.aspx

您应该能够使用我在上面脚本中使用的方法,在少于十行的C#中为新驱动器连接一个事件。

希望这有帮助。