Einzelnen Beitrag anzeigen

Carsten1234

Registriert seit: 9. Apr 2008
Ort: Vechelde
178 Beiträge
 
Delphi 8 Professional
 
#10

Re: USB: Info über das gerade angesteckte Gerät

  Alt 30. Apr 2009, 07:38
Zitat von nicodex:
Wenn der Name in der DEV_BROADCAST_PORT-Struktur nicht eindeutig ist (bzw. keine Möglichkeit bietet, von diesem auf das Gerät zu schließen) und keine andere Lösung findest, dann würdest du eine Liste mit den bekannten Geräten pflegen müssen (unschön).
Ich fürchte fast, dass da kein Weg dran vorbei führt, sowohl beim Programmstart diese Liste einzulesen als auch bei einem DBT_DEVICEARRIVAL jedes Mal die Liste neu einzulesen und mit den in der Liste bereits vorhandenen Geräten zu vergleichen.
Im Prinzip möchte ich ja nur die VID&PID des gerade angesteckten Geräts auslesen und hatte mich deswegen auch schon mit der MAGWMI beschäftigt.
Da es sich ja wie geschrieben bei meinem Gerät um ein USB-Gerät handelt, was via virtuellem COM-Port Treiber mit dem PC verbunden wird, hatte ich die MAG-Lib um den Eintrag 'Win32_SerialPort' aufgebohrt. Damit bekomme ich zwar beim Programmstart schön eine Liste alle über die COM-Ports angeschlossenen Geräte nebst VID&PID, wenn aber der DBT_DEVICEARRIVAL vorbei kommt und ich erneut versuche, via 'Win32_SerialPort' die Liste einzulesen, kommt die folgende Exception:
Ein ausgehender Aufruf kann nicht ausgeführt werden, da die Anwendung einen Eingabe-synchronisierten Aufruf weiterleitet.

Die Erklärung zur Exception findet sich hier von Andreas Kosch.
Wo anders fand ich noch den Hinweis, vor der Anfrage eine InSendMessage-Abfrage zu starten. Liefert diese true, kann ich nicht abfragen. Und das ist bei mir leider immer so bei einem DBT_DEVICEARRIVAL.

Gruß, Carsten
  Mit Zitat antworten Zitat