Mega Code Archive

 
Categories / Delphi / VCL
 

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;