für eine Veranstaltung registrieren in Windows
-
27-09-2019 - |
Frage
Hallo Ich möchte etwas tun, wenn ein Memory-Stick an den PC gebunden. Ich nun einen Timer verwenden und überprüfen Sie es in jedem Tick, ob ein Memory-Stick eingesteckt ist (verwenden Sie Driveinfo oder mit Abfragen von WMI) Gibt es ein ereignisgesteuerte Modell zur Verfügung zu tun? zum Beispiel verwende ich ein Ereignis in meinem Programm, dass Gehaltserhöhung, wenn ein Memory-Stick wird in dem Computer angeschlossen?
Lösung
Sie möchten behandeln die WM_DEVICECHANGE Nachricht in Ihrem Wndproc. Wenn Sie damit umgehen, können Sie auch RegisterDeviceNotification
rufen Benachrichtigung zu erhalten, dass der Stick sauber ausgestoßen wird.
Wenn Sie eine WM_DEVICECHANGE
empfangen, möchten Sie die WParam überprüfen - DBT_DEVICEARRIVAL
(0x800) ist das, was Sie suchen
In C ++, sollten Sie keine Probleme mit dem Wndproc haben. In c #, mögen Sie Ihr Hauptformular WndProc Verfahren und die Prüfung m.Msg == 0x219
und m.WParam == 0x800
. Beachten Sie, dass nicht alle diese wird ein Memory-Stick sein -. Sie können dies aber verwenden Sie zu benachrichtigen, für Laufwerk Einsetzen zu überprüfen, anstatt einen Timer