Savoir lorsque le tirroir du CDrom s'ouvre/se ferme

type
TForm1 = class(TForm)
private
procedure WMDeviceChange( var Msg: TMessage); message WM_DEVICECHANGE;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

// déclarations traduites de DBT.H:

const
DBT_DEVICEARRIVAL = $8000;
DBT_DEVICEREMOVECOMPLETE = $8004;
DBT_DEVTYP_VOLUME = 2; // logical volume

type
_DEV_BROADCAST_VOLUME = record
dbcv_size,
dbcv_devicetype,
dbcv_reserved,
dbcv_unitmask: DWORD;
dbcv_flags: WORD;
end;
TDevBroadcastVolume = _DEV_BROADCAST_VOLUME;
PDevBroadcastVolume = ^TDevBroadcastVolume;

procedure TForm1.WMDeviceChange( var Msg: TMessage);
var
Disques: set of 0..25;
nDisque: Integer;
sMsg : string;
Volume: PDevBroadcastVolume;
begin
inherited;
case Msg.WParam of
DBT_DEVICEARRIVAL : sMsg := 'Insertion de disque(s) en :';
DBT_DEVICEREMOVECOMPLETE : sMsg := 'Ejection de disque(s) de :';
else
Exit;
end;
Volume := PDevBroadcastVolume(Msg.LParam);
if Volume^.dbcv_devicetype <> DBT_DEVTYP_VOLUME then Exit;
DWORD(Disques) := Volume^.dbcv_unitmask;
for nDisque := 0 to 25 do begin
if not (nDisque in Disques) then Continue;
sMsg := sMsg + #13 + Char(nDisque + Ord('A')) + ':';
end;
ShowMessage(sMsg);
end;
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour21/03/2004
VisualisationVu 1034 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Systeme
Auteur de l'article
SwissDelphiCenter SwissDelphiCenter
connecté le 02/11/2011
329 articles dans la section
Contacter l'auteur