Wie kann ich feststellen, ob eine Audio-CD im Laufwerk liegt?


Möglichkeit 1: Man sucht auf dem angegebenen Laufwerk nach einer Datei mit der Endung *.cda:

function IsAudioCD(Drive : char) : boolean;
var SR : TSearchRec;
begin
  Result := SysUtils.FindFirst(Drive+':\*.cda',faAnyFile,SR)=0;
  SysUtils.FindClose(SR);
end;

Möglichkeit 2: Der 'VolumeName' einer Audio-CD ist immer 'Audio-CD':

function IsAudioCD(Drive : char) : boolean;
var DrivePath : string;
    MaximumComponentLength : DWORD;
    FileSystemFlags : DWORD;
    VolumeName : string;
begin
  Result := false;
  DrivePath := Drive + ':\';
  if GetDriveType(PChar(DrivePath))<>DRIVE_CDROM then exit;
  SetLength(VolumeName, 64);
  GetVolumeInformation(PChar(DrivePath),
                       PChar(VolumeName),
                       Length(VolumeName),
                       nil,
                       MaximumComponentLength,
                       FileSystemFlags,
                       nil,
                       0);
  result := (lStrCmp(PChar(VolumeName),'Audio CD')=0);
end;
Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:

Wie kann ich bei mehreren CD-ROM-Laufwerken ein bestimmtes für Audio-CD-Wiedergabe bestimmen?
Wie kann ich die ID-Nummer einer Audio-CD ermittlen?
Wie kann ich die Schublade des CD-Laufwerks ein-/ausfahren?


Delphi FAQ