Hallo
Ich möchte einen USB Stick in meinem Fall ein USB MP3 Player wie zb den IPOD (Ich weiss verschlüsselt
)
erkennen wen dieser Angeschlossen wird.
Dazu habe ich mal die Suche bemüht und dies Gefunden
Delphi-Quellcode:
procedure TFenster.WMDeviceChange(var Msg: TMessage);
type PDevBroadcastHdr = ^TDevBroadcastHdr;
TDevBroadcastHdr = packed record
dbcd_size, dbcd_devicetype, dbcd_reserved: DWORD; end;
type PDevBroadcastVolume = ^TDevBroadcastVolume;
TDevBroadcastVolume = packed record
dbcv_size, dbcv_devicetype, dbcv_reserved, dbcv_unitmask: DWORD;
dbcv_flags: Word; end;
function GetDrive(pDBVol: PDevBroadcastVolume): string;
var i: Byte; Maske: DWORD;
begin
if (pDBVol^.dbcv_flags and $0001) = $0001 then
begin
Maske := pDBVol^.dbcv_unitmask;
for i := 0 to 25 do
begin
if (Maske and 1) = 1 then
Result := Char(i + Ord('A')) + ': ';
Maske := Maske shr 1;
end;
end;
end;
var Drive: String;
begin
case Msg.wParam of
$8000:
if PDevBroadcastHdr(Msg.lParam)^.dbcd_devicetype = $0002 then
Pan('Datenträger in Laufwerk '+GetDrive(PDevBroadcastVolume(Msg.lParam))+'eingelegt');
$8004:
if PDevBroadcastHdr(Msg.lParam)^.dbcd_devicetype = $0002 then
begin
Drive := GetDrive(PDevBroadcastVolume(Msg.lParam));
Pan('Datenträger aus Laufwerk '+Drive+'entfernt');
if not(Drive = '') and (Drive[1] = ExtractFilePath(ParamStr(0))[1]) then Close;
end;
end;
end;
Dieser Code Funktioniert beim einlegen einer CD Sehr gut jedoch wird beim anschliessen des IPOD nur Datenträger in Lauferk Eingelegt
angezeigt also ohne Laufwerkbuchstaben obwohl kurzdarauf bei mir ein Explorer Fenster aufgeht mit Entsprechendem IPOD Inhalt
Ich hoffe auf hilfe
Danke