![]() |
WM_DEVICECHANGE Uses oder was?
Hallo
Ich möchte die message WM_DEVICECHANGE benutzen doch mein Programm bzw Delphi kennt den "befehl" nicht. Brauch ich dazu den Spezielle Uses oder so? mein code sieht so aus:
Delphi-Quellcode:
PROCEDURE TForm1.WMDEVICECHANGE(VAR Message: TMessage);
VAR s: String; BEGIN IF Message.wParam = DBT_DEVICEARRIVAL THEN BEGIN // Gerät wurde hinzugefügt CASE PDev_Broadcast_Hdr( Message.LParam).dbch_devicetype OF DBT_DEVTYP_OEM : s:='OEM-Gerät'; DBT_DEVTYP_DEVNODE : s:='Geräteknoten'; DBT_DEVTYP_VOLUME : s:='Datenträger'; DBT_DEVTYP_PORT : s:='Seriell/Parallele'; DBT_DEVTYP_NET : s:='Netzwerk'; DBT_DEVTYP_DEVICEINTERFACE: s:='Geräteschnittstelle'; DBT_DEVTYP_HANDLE : s:='Dateisystem'; END; END ELSE IF Message.wParam = DBT_DEVICEREMOVECOMPLETE THEN BEGIN // Gerät wurde entfernt END; Message.Result:=1; END; danke für die hilfe |
Re: WM_DEVICECHANGE Uses oder was?
Du brauchst windows und messages.
Vielleicht hilft dieses auch noch weiter:-> ![]() Grüße Klaus |
Re: WM_DEVICECHANGE Uses oder was?
Hast recht es klappt aber das nicht
DBT_DEVICEARRIVAL |
Re: WM_DEVICECHANGE Uses oder was?
Geht es nicht, wenn Du es als Const deklarierst?
DBT_DEVICEARRIVAL = $8000; Grüße Klaus |
Re: WM_DEVICECHANGE Uses oder was?
könntest du mir dabei helfen weiss nicht genau wie ich das machen könnte
|
Re: WM_DEVICECHANGE Uses oder was?
Ich dachte so?
Delphi-Quellcode:
Grüße
PROCEDURE TForm1.WMDEVICECHANGE(VAR Message: TMessage);
CONST DBT_DEVICEARRIVAL = $8000; // system detected a new device VAR s: String; BEGIN IF Message.wParam = DBT_DEVICEARRIVAL THEN BEGIN // Gerät wurde hinzugefügt CASE PDev_Broadcast_Hdr(Message.LParam).dbch_devicetype OF DBT_DEVTYP_OEM : s:='OEM-Gerät'; DBT_DEVTYP_DEVNODE : s:='Geräteknoten'; DBT_DEVTYP_VOLUME : s:='Datenträger'; DBT_DEVTYP_PORT : s:='Seriell/Parallele'; DBT_DEVTYP_NET : s:='Netzwerk'; DBT_DEVTYP_DEVICEINTERFACE: s:='Geräteschnittstelle'; DBT_DEVTYP_HANDLE : s:='Dateisystem'; END; END ELSE IF Message.wParam = DBT_DEVICEREMOVECOMPLETE THEN BEGIN // Gerät wurde entfernt END; Message.Result:=1; END; Klaus |
Re: WM_DEVICECHANGE Uses oder was?
Und was ist mit diesen Beiden?
Delphi-Quellcode:
PDev_Broadcast_Hdr
Delphi-Quellcode:
Bis jetzt siehts so aus Stimmt das?
dbch_devicetype
Delphi-Quellcode:
PROCEDURE TForm1.WMDEVICECHANGE(VAR Message: TMessage);
CONST DBT_DEVICEARRIVAL = $8000; // system detected a new device DBT_DEVTYP_OEM = $00000000; DBT_DEVTYP_DEVNODE = $00000001; DBT_DEVTYP_VOLUME = $00000002; DBT_DEVTYP_PORT = $00000003; DBT_DEVTYP_NET = $00000004; DBT_DEVTYP_DEVICEINTERFACE = $00000005; DBT_DEVTYP_HANDLE = $00000006; VAR s: String; BEGIN IF Message.wParam = DBT_DEVICEARRIVAL THEN BEGIN // Gerät wurde hinzugefügt CASE PDev_Broadcast_Hdr(Message.LParam).dbch_devicetype OF DBT_DEVTYP_OEM : s:='OEM-Gerät'; DBT_DEVTYP_DEVNODE : s:='Geräteknoten'; DBT_DEVTYP_VOLUME : s:='Datenträger'; DBT_DEVTYP_PORT : s:='Seriell/Parallele'; DBT_DEVTYP_NET : s:='Netzwerk'; DBT_DEVTYP_DEVICEINTERFACE: s:='Geräteschnittstelle'; DBT_DEVTYP_HANDLE : s:='Dateisystem'; END; END ELSE IF Message.wParam = DBT_DEVICEREMOVECOMPLETE THEN BEGIN // Gerät wurde entfernt END; Message.Result:=1; END; |
Re: WM_DEVICECHANGE Uses oder was?
Moin Hedie,
Zitat:
Möglichkeit, weil es ca. 400 MB sind. Dann hast Du auch die C-Header-Dateien, und kannst Deklarationen die Dein Delphi nicht kennt, ggf. aus diesen herauslesen, ausserdem ist die Dokumentation besser und aktueller als das mitgelieferte SDK. Probier's mal mit dieser Deklaration:
Delphi-Quellcode:
type // aus dbh.h
PDEV_BROARDCAST_HDR = ^DEV_BROADCAST_HDR; DEV_BROADCAST_HDR = packed record dbch_size : DWORD; dbch_devicetype : DWORD; dbch_reserved : DWORD; end; |
Re: WM_DEVICECHANGE Uses oder was?
Die JVCL installieren.
![]() Dort ist common/DBT.pas dabei das die notwendigen Konstanten deklariert. Die sind bei Delphi nicht vorhanden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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