AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WM_DEVICECHANGE Uses oder was?

Ein Thema von hedie · begonnen am 5. Feb 2007 · letzter Beitrag vom 6. Feb 2007
Antwort Antwort
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 21:13
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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 21:19
Du brauchst windows und messages.

Vielleicht hilft dieses auch noch weiter:-> http://www.swissdelphicenter.ch/torr...ode.php?id=372

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#3

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 22:19
Hast recht es klappt aber das nicht


DBT_DEVICEARRIVAL
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 22:27
Geht es nicht, wenn Du es als Const deklarierst?

DBT_DEVICEARRIVAL = $8000;

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#5

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 22:31
könntest du mir dabei helfen weiss nicht genau wie ich das machen könnte
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 22:34
Ich dachte so?

Delphi-Quellcode:
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;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#7

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 22:43
Und was ist mit diesen Beiden?

PDev_Broadcast_Hdr dbch_devicetype Bis jetzt siehts so aus Stimmt das?

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;
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: WM_DEVICECHANGE Uses oder was?

  Alt 5. Feb 2007, 23:10
Moin Hedie,

Zitat von hedie:
Und was ist mit diesen Beiden?

PDev_Broadcast_Hdr dbch_devicetype
wenn Du die Möglichkeit hast, empfehle ich Dir mal das PSDK bei Microsoft herunterzuladen.
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: WM_DEVICECHANGE Uses oder was?

  Alt 6. Feb 2007, 05:45
Die JVCL installieren. http://jvcl.sf.net
Dort ist common/DBT.pas dabei das die notwendigen Konstanten deklariert. Die sind bei Delphi nicht vorhanden.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:08 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