Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Event beim Entfernen eines USB-Gerätes (https://www.delphipraxis.net/93936-event-beim-entfernen-eines-usb-geraetes.html)

Nuclear-Ping 13. Jun 2007 14:52


Event beim Entfernen eines USB-Gerätes
 
Hallo,

gibt es einen System-Event, wenn ein USB-Gerät entfernt wird? Wenn ja, welcher und wie bekommt man das hin, dass Anwendung X darauf reagiert?

Grüße,

Mario

Robert Marquardt 13. Jun 2007 14:57

Re: Event beim Entfernen eines USB-Gerätes
 
Das ist ueber WM_DEVICECHANGE geregelt.
Schilder mal genauer welches USB-Geraet es ist. Man muss eventuell noch ein bischen mit RegisterDeviceNotification nachhelfen. Das schwierigste ist die GUID rauszubekommen, die fuer ein bestimmtes Geraet oder USB-Geraeteklasse steht.

Nuclear-Ping 13. Jun 2007 15:05

Re: Event beim Entfernen eines USB-Gerätes
 
Es sind mehrere USB-Geräte in einem. Am signifikantesten ist z.B. aber, dass dann eine USB-Soundkarte "USB Audio" entfernt wird.

Robert Marquardt 13. Jun 2007 15:18

Re: Event beim Entfernen eines USB-Gerätes
 
Willst du auf USB-Audiogeraete im allgemeinen oder auf spezifisch das Geraet von diesem Hersteller reagieren?

Auf jeden Fall solltest du die JVCL installieren, da dort DBT.pas enthalten ist. Dort ist WM_DEVICECHANGE deklariert.
Unbedingt JCL von http://jcl.sf.net/daily und JVCL von http://jvcl.sf.net/daily nehmen, da ich erst letztens einen Fehler in DBT.pas behoben habe.

Nuclear-Ping 13. Jun 2007 15:25

Re: Event beim Entfernen eines USB-Gerätes
 
Spezifisch nur dieses Gerät. Wir haben ne Software + Hardware entwickelt. Und wenn das Gerät entfernt wird, sollen diverse Funktionen in der Software deaktiviert werden.

Danke für die Tipps. Werd' ich mir mal die Tage angucken. :)

Robert Marquardt 13. Jun 2007 15:47

Re: Event beim Entfernen eines USB-Gerätes
 
Studier mal die HID-Komponente. Speziell die FillIn-Funktion. Das Enumerieren von Geraeten mit SetupDi-Funktionen ist prinzipiell immer gleich, nur die GUID wechselt.

Nuclear-Ping 14. Jun 2007 12:10

Re: Event beim Entfernen eines USB-Gerätes
 
Kurze Frage noch: Ich hab schon 'ne JCL (1.99 Build 2551)/ JVCL (3.31) Installation. Reicht es, wenn ich einfach die DBT.pas ersetze?

Robert Marquardt 14. Jun 2007 12:29

Re: Event beim Entfernen eines USB-Gerätes
 
Ja. Danach die JVCL per install.bat neu uebersetzen und dabei "Build packages" bestellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 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