Entwickler-Ecke

Windows API - Win-Message für WM_DEVICECHANGE


Fabian W. - Mo 19.11.07 18:29
Titel: Win-Message für WM_DEVICECHANGE
Abgespalten von Win-Messages für ShutDown und Standby [http://www.delphi-forum.de/viewtopic.php?p=472676].

Ich möchte aus der Message procedure WMDEVICECHANGE(var Msg: TMessage); message WM_DEVICECHANGE; lesen, ob ein (USB-)Device angesteckt oder abgezogen wurde. Optimal wäre es, wenn ich dazu auch gleich noch den entsprechenden Laufwerksbuchstaben ermitteln könnte.
Alles was ich dazu gefunden habe, ist eine Komponente von den Schweizern [http://www.swissdelphicenter.ch/de/showcode.php?id=2211], ich würde aber gerne verstehen wie die Sache funktioniert.^^

mfg


Fabian W. - Di 20.11.07 18:29

*push*


Heiko - Di 20.11.07 21:00

Hallo Fabian,

was verstehst du daran nicht? USBRegister sorgt eben dafür, dass Windows ne Nachricht an dein Proggi schickt, sobald ein USB-Gerät umgestöpselt wird, denn normalerweise wird die Message nicht versendet. WMDeviceChange überprüft dann lediglich, ob wirklich die Nachricht angekommen ist, die man haben will (die Message scheint auch über andere Dinge zu benachrichtigen), und löst dem entsprechend die entsprechende Funktion auf, falls die gesetzt wurde.


Fabian W. - Mi 21.11.07 16:06

Achso, okay...
Gibt es denn eine Möglichkeit den Laufwerksbuchstaben aus den Informationen der Message zu lesen?


Heiko - Mi 21.11.07 17:53

Hallo Fabi,

MSDN ist dein Freund! Was die Message an Parametern liefert, findest hier [http://msdn2.microsoft.com/en-us/library/aa363480.aspx]. Der laufwerksbuchstabe steckt mit im 2. Parameter ;).


Fabian W. - Fr 23.11.07 19:26

Fein, thxs - hier [http://www.dsdt.info/tipps/?id=199] gibts auch schon was in Delphi für Interessierte. ;)

mfg