Question and Answer Database FAQ2740D.txt How can I eject a CD-ROM in code? Category :VCL Platform :All Product :All 32 bit 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; 7/16/98 4:31:28 PM
Last Modified: 01-SEP-99