![]() |
USB: Info über das gerade angesteckte Gerät
Hallo,
wenn via USB angeschlossen oder abgezogen wird, kommt ja von Windows ein wm_DeviceChange vorbei, auf das man ragieren kann. Das ist allerdings "nur" eine allgemeine Info, dass sich am USB was getan hat. Mich interessiert hingegen, ob man über das gerade angesteckte Gerät mehr Infos erfahren kann. Geht das? Gruß, Carsten |
Re: USB: Info über das gerade angesteckte Gerät
Gleich der 1. Treffer von
![]() findet den sehr interessanten und lehrreichen Artikel: ![]() |
Re: USB: Info über das gerade angesteckte Gerät
Hallo zusammen,
Bei dem Artikel geht's ja vor allem um den Wechsel der Geräte. Such mal nach ![]() Gruß K-H |
Re: USB: Info über das gerade angesteckte Gerät
Zitat:
|
Re: USB: Info über das gerade angesteckte Gerät
Welches DBT-Ereignisse/Informationen fehlen dir denn?
Für Volumes und Ports werden auch ohne RegisterDeviceNotification Nachrichten an alle Hauptfenster gesendet. |
Re: USB: Info über das gerade angesteckte Gerät
Zitat:
![]() Gruß, Carsten |
Re: USB: Info über das gerade angesteckte Gerät
Zitat:
Gruß, Carsten |
Re: USB: Info über das gerade angesteckte Gerät
Zitat:
|
Re: USB: Info über das gerade angesteckte Gerät
Ab Vista gibts da ein schönes Usermode-Interface namens WinUSB. Was genau möchtest Du über das gerade angestöpselte Device denn wissen?
|
Re: USB: Info über das gerade angesteckte Gerät
Zitat:
Im Prinzip möchte ich ja nur die VID&PID des gerade angesteckten Geräts auslesen und hatte mich deswegen auch schon mit der ![]() 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 ![]() 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz