USB Listener/Watcher
-
Hallo Leute,
ich will überwachen bzw. ein Event-Abfangen welches gefeuert wird, sobald irgendein ein USB Device abgetrennt oder angeschlossen wird.Dann hab ich folgendes Code Gefunden:
WqlEventQuery q;// Represents a WMI event query in WQL format (Windows Query Language) ManagementScope scope = new ManagementScope("root\\CIMV2"); // Represents a scope (namespace) for management operations. scope.Options.EnablePrivileges = true; try { q = new WqlEventQuery(); q.EventClassName = "__InstanceCreationEvent"; q.WithinInterval = new TimeSpan(0, 0, 3); q.Condition = @"TargetInstance ISA 'Win32_USBControllerdevice'"; w = new ManagementEventWatcher(scope, q); //adds event handler that’s is fired when the insertion event occurs w.EventArrived += new EventArrivedEventHandler((s, e) => { //EVENT }); w.Start();//run the watcher } catch (Exception e) { if (w != null) w.Stop(); }
Das Problem is nun, das nur ein Event geschmissen wird, wenn ein USB Device angeschlossen wird, nicht abe getrennt wird.
Könnt ihr mir helfen?
Oder soll ich evtl. auf die WinAPI zurückgreifen ?
-
Hi,
nachdem du weißt das ein neues Gerät angeschlossen worden ist,
könntest du einfach das "neue" Verzeichnis überwachen.
Sobald das Gerät wieder getrennt wurde, ist auch das Verzeichnis
ungültig.Wäre ein kleiner Workaround bist du eine andere "saubere" Lösung findest.
Gruß