Erkennen mir eine Benachrichtigung zu geben, wenn ein USB-Laufwerk in meinen PC unter Windows Vista (oder win7)# -Code der Suche nach C für einen C# Codeausschnitt Ich suche austauschbares Laufwerk (USB-Flash)
angeschlossen ist# -Code der Suche nach C für einen C# Codeausschnitt Ich suche austauschbares Laufwerk (USB-Flash)
Antwort
Es gibt eine Klasse namens DriveDetector bei Codeproject, die klingt, als ob sie das tut, was Sie wollen.
Betrachten Sie WM_DEVICECHANGE. Diese Nachricht sollte gesendet werden, wenn ein Laufwerk eingelegt wird.
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.
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:
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.