2009-04-03 11 views

Antwort

12

Es gibt eine Klasse namens DriveDetector bei Codeproject, die klingt, als ob sie das tut, was Sie wollen.

3

Betrachten Sie WM_DEVICECHANGE. Diese Nachricht sollte gesendet werden, wenn ein Laufwerk eingelegt wird.

1

Ich weiß, dass dies nicht genau das ist, wonach Sie gefragt haben, aber wenn Sie überprüfen möchten, welche Geräte zu einem bestimmten Zeitpunkt verfügbar sind, gibt es einen anderen Weg. Sie können die WMI-Klassen in System.Management namespace verwenden, ich habe diese Methode verwendet und es funktioniert gut. Wenn Sie sich this answer ansehen, wird gezeigt, wie alle Laufwerke im System aufgelistet werden. Sie können sich dann den Laufwerkstyp ansehen, um festzustellen, ob es sich um einen USB-Stick handelt oder nicht.

0

Ich schrieb ein Powershell-Modul, das ein System.Management.ManagementEventWatcher und die WMI-Klasse Win32_VolumeChangedEvent verwendet, um neue Ereignisse zu erfassen, die Sie in der Powershell registrieren können, um Geräte zu entfernen, hinzuzufügen usw. Sie sollten in der Lage sein, die entsprechenden Rohrleitungen zu finden aus dieser Blog-Post von mir:

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

sollten Sie in der Lage sein, ein Ereignis für neue Laufwerke in weniger als zehn Zeilen C# unter Verwendung der Methoden, die ich in dem obigen Skript verwenden, um verdrahten.

Hoffe, das hilft.