AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi USB: Info über das gerade angesteckte Gerät
Thema durchsuchen
Ansicht
Themen-Optionen

USB: Info über das gerade angesteckte Gerät

Ein Thema von Carsten1234 · begonnen am 28. Apr 2009 · letzter Beitrag vom 18. Sep 2009
Antwort Antwort
Seite 1 von 3  1 23      
Carsten1234

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

USB: Info über das gerade angesteckte Gerät

  Alt 28. Apr 2009, 14:02
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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

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

  Alt 28. Apr 2009, 17:44
Gleich der 1. Treffer von Bei Google suchenwm_devicechange AND usb
findet den sehr interessanten und lehrreichen Artikel:
http://www.toolbox-mag.de/data/tx22005artikel1.pdf
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

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

  Alt 28. Apr 2009, 18:21
Hallo zusammen,

Bei dem Artikel geht's ja vor allem um den Wechsel der Geräte.
Such mal nach Hier im Forum suchenWMI USB da kommt ganz gut was zusammen.

Gruß
K-H
  Mit Zitat antworten Zitat
Carsten1234

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

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

  Alt 29. Apr 2009, 13:06
Der Artikel ist bekannt, beantwortet aber nicht meine Frage.
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#5

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

  Alt 29. Apr 2009, 13:19
Welches DBT-Ereignisse/Informationen fehlen dir denn?
Für Volumes und Ports werden auch ohne RegisterDeviceNotification Nachrichten an alle Hauptfenster gesendet.
  Mit Zitat antworten Zitat
Carsten1234

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

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

  Alt 29. Apr 2009, 15:04
Zitat von p80286:
Hallo zusammen,
Such mal nach Hier im Forum suchenWMI USB da kommt ganz gut was zusammen.
Danke für den Tipp, aber die WIN32_xxx classes geben da nicht wirklich was her für meine Zwecke.

Gruß, Carsten
  Mit Zitat antworten Zitat
Carsten1234

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

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

  Alt 29. Apr 2009, 15:07
Zitat von nicodex:
Welches DBT-Ereignisse/Informationen fehlen dir denn?
Für Volumes und Ports werden auch ohne RegisterDeviceNotification Nachrichten an alle Hauptfenster gesendet.
Gar keines, denn auf DBT_DEVICEARRIVAL und DBT_DEVICEREMOVECOMPLETE reagiere ich bereits. Beim DBT_DEVICEARRIVAL würde ich aber gerne noch erfahren, was da gerade für ein USB-Gerät (gut, in meinem Fall COM-Gerät, da Virtual COM Port Treiber) angestöpselt wurde.

Gruß, Carsten
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#8

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

  Alt 29. Apr 2009, 16:36
Zitat von Carsten1234:
Beim DBT_DEVICEARRIVAL würde ich aber gerne noch erfahren, was da gerade für ein USB-Gerät (gut, in meinem Fall COM-Gerät, da Virtual COM Port Treiber) angestöpselt wurde.
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).
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#9

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

  Alt 29. Apr 2009, 17:19
Ab Vista gibts da ein schönes Usermode-Interface namens WinUSB. Was genau möchtest Du über das gerade angestöpselte Device denn wissen?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
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
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz