// Der folgende
Code reagiert auf das Einlegen und Entfernen einer CD (DVD). ...
private
{ Private-Deklarationen }
public
procedure WMDC(var Msg: TMessage); message WM_DEVICECHANGE;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type
PDBCV = ^_DevBroadcastVolume;
_DevBroadcastVolume = record
dbcv_size, dbcv_devicetype, dbcv_reserved, dbcv_unitmask: cardinal;
dbcv_flags: word;
end;
function LW(Vol: PDBCV): char;
var
i: Byte;
m: cardinal;
begin
result := #0;
if Vol.dbcv_devicetype = 2 then
if odd(Vol^.dbcv_flags) then begin
m := Vol^.dbcv_unitmask;
for i := 0 to 25 do begin
if odd(m) then begin
result := Char(i + 65);
break;
end;
m := m shr 1;
end;
end;
end;
procedure TForm1.WMDC(var Msg: TMessage);
var
c: char;
begin
c := LW(PDBCV(Msg.lParam));
if c <> #0 then
case Msg.wParam of
$8000: label1.Caption :=
'Laufwerk ' + c + ': ist jetzt verfügbar.';
$8004: label1.Caption :=
'Laufwerk ' + c + ': ist nicht mehr verfügbar.';
end;
end;
|





