Hallo,
ich möchte mitbekommen, wenn mein angeschlossener IO-Warrior aus dem System entfernt wird. Dazu habe ich nach einem Beispiel die oben genannte Win-Api Funktion "RegisterForDeviceNotification()" eingesetzt. Das funktioniert auch reibungslos erscheint mir aber etwas kompliziert.
Ist das der einzig mögliche weg, oder wäre auch eine Prüfung über die IowKit.dll möglich. Zum Beispiel über die NumDevs-Funktion ? Ein mehrfacher Aufruf der Open-Funktion kam nicht in Frage, weil das zu Fehlern geführt hat. Mit dem Quellcode der IowKit.dll habe ich mich bisher noch nicht beschäftigt. Ich hoffe, dass mir jemand hier im Forum weiterhelfen kann.
Die bisher eingesetzte Methode hat auch einen weiteren Nachteil. Sie arbeitet nur, nachdem ein IO-Warrior erfolgreich geöffnet und identifiziert worden ist. Mir wäre eine automatische Erkennung nach der "WM_DeviceChange" oder "WM_DeviceNodeChange"-Message am liebsten. Dann würde ich in meinem Hauptfenster einfach nur die WndProc()-Methode erweitern. Wichtig: Ich arbeite mit C#.
Danke für eine Antwort.
IOWarrior überwachen:Nur mit RegisterForDeviceNotification ?
Moderator: Guido Körber
Re: IOWarrior überwachen:Nur mit RegisterForDeviceNotificati
Hallo,
Die interessanten Teile sind wohl die Klassen "MessageCatcher.cs" , "IowDeviceChangeListener" und "IowManager.cs".
Eberhard
Soweit mir bekannt ist, bietet die IowKit-nicht diese Möglichkeit. Wenn ich mich recht erinnere liefert GetNumDevs immer die Anzahl der IOWarrior die bei IowKitOpenDevice() ermittelt wurde.Rumo wrote: ich möchte mitbekommen, wenn mein angeschlossener IO-Warrior aus dem System entfernt wird. Dazu habe ich nach einem Beispiel die oben genannte Win-Api Funktion "RegisterForDeviceNotification()" eingesetzt. Das funktioniert auch reibungslos erscheint mir aber etwas kompliziert.
Ist das der einzig mögliche weg, oder wäre auch eine Prüfung über die IowKit.dll möglich.
Ich habe das in meiner CsIow-Library genau so gemacht. Die findest Du hier http://www.wayoda.org/csiow/index.htmlDer weg über Mir wäre eine automatische Erkennung nach der "WM_DeviceChange" oder "WM_DeviceNodeChange"-Message am liebsten.
Die interessanten Teile sind wohl die Klassen "MessageCatcher.cs" , "IowDeviceChangeListener" und "IowManager.cs".
Unter Windows tue ich das auch. Ich bin kein Freund von Microsoft aber bei C# hatten sie mal einen guten Tag (inbesondere bei ihren Raubzügen im Java Development Kit. Die Auswahl der Teile die schon Java zu einer guten Programmiersprache gemacht haben ist wirklich excellent).
Wichtig: Ich arbeite mit C#.
Eberhard