Open, Close CD/DVD Tray - Delphi

DarkCoderSc
Jean-Pierre LESUEUR
// ...
uses
System.SysUtils, Winapi.Windows, WinApi.MMSystem;
procedure OpenCloseCD(const ADoOpen : Boolean);
begin
var ALogicalDrives := GetLogicalDrives();
var I := -1;
for var ALetter in ['a'..'z'] do begin
Inc(I);
if (ALogicalDrives and (1 shl I)) = 0 then
continue;
if GetDriveType(PChar(ALetter + ':')) <> DRIVE_CDROM then
continue;
var ATrayAction := '';
if ADoOpen then
ATrayAction := 'open'
else
ATrayAction := 'closed';
mciSendString(PWideChar(Format('open cdaudio!%s: alias cdrom%s', [ALetter, ALetter])), nil, 0, 0);
mciSendString(PWideChar(Format('set cdrom%s door %s wait', [ALetter, ATrayAction])), nil, 0, 0);
end;
end;
// ...
// Usage:
OpenCloseCD(True); // Open CD/DVD Tray's
OpenCloseCD(False); // Close CD/DVD Tray's
Implemented By Technique
Featured Windows API
Created
April 9, 2025
Last Revised
April 10, 2025