Einzelnen Beitrag anzeigen

Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#1

WM_DEVICECHANGE, DBT_DEVTYP_PORT: Portnamen rausbekommen.

  Alt 30. Jul 2008, 14:56
Hallo,

ich versuche gerade über die WM_DEVICECHANGE Message herauszubekommen, ob ein neuer Com Port von einem USB Barcodescanner im System angelegt/gelöscht wird. Das funktioniert soweit ganz gut. Nun möchte ich noch den Namen des Ports wissen und da scheitert es an meinen API Kenntnissen.

Die Struktur zum Auslesen der Information hab ich schon in Jedi gefunden (DBT.pas):

Delphi-Quellcode:
 
PDevBroadCastPortA = ^TDevBroadCastPortA;
DEV_BROADCAST_PORT_A = record
  dbcp_size: DWORD;
  dbcp_devicetype: DWORD;
  dbcp_reserved: DWORD;
  dbcp_name: array [0..0] of AnsiChar;
end;
TDevBroadCastPortA = DEV_BROADCAST_PORT_A;
Das Auslesen mache ich über:

PDevBroadcastPortA(Msg.LParam)^.dbcp_name Ich weiß nicht, wie ich mit dem dhcp_name umgehen soll, laut msdn ist es ein Pointer zu einem nullterminierten string. Die Länge im Ergebnis ist 1 und enthält 'C'. Das 'C' ist bestimmt der Anfang von ComXX.

Wie komme ich jetzt bloss an den kompletten String?

Gruß,
Matthias
  Mit Zitat antworten Zitat