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

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

在Codeproject上有一个名为DriveDetector的类,它听起来就像你想要的那样。

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

我知道这不是你要求的,但如果你想在任何时候检查可用的设备,还有另一种方法。 您可以在System.Management命名空间中使用WMI类,我已经使用了这个方法,它运行良好。

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

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

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

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

希望这可以帮助。