- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

How can I eject a CD-ROM in code?

Question:

How can I eject a CD-ROM in code?

Answer:

You can use the Windows API function GetDriveType() to test

if the drive is a CD-ROM  drive then use the TMediaPlayer 

(even if the CD is not an Audio CD) to eject the CD.



Example:



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;




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile