Советы по Delphi

         

Как программно выдвинуть CD-ROM?


Своим опытом делится Олег Кулабухов:

Вот довольно сложный пример с использованием GetDriveTyoe для определения того, что мы собираемся извлекать.

    function IsDriveCD(Drive : char) : longbool;
var
DrivePath : string;
begin
DrivePath := Drive + ':\';
result := LongBool(GetDriveType(PChar(DrivePath)) and DRIVE_CDROM);
end;

function EjectCD(Drive : char) : bool;


var
mp : TMediaPlayer;
begin
result := false;
Application.ProcessMessages;
if not IsDriveCD(Drive) then exit;
mp := TMediaPlayer.Create(nil);
mp.Visible := false;
mp.Parent := Application.MainForm;
mp.Shareable := true;
mp.DeviceType := dtCDAudio;
mp.FileName := Drive + ':';
mp.Open;
Application.ProcessMessages;
mp.Eject;
Application.ProcessMessages;
mp.Close;
Application.ProcessMessages;
mp.free;
result := true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not
EjectCD('D') then
ShowMessage('Not A CD Drive');
end;

[001891]



Содержание раздела