// 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; |