[Delphi] Typ płyty w napędzie

0

Jak określić, jaki typ płyty znajduje się w napędzie np. CD-ROM, DVD-ROM, CDAUDIO itp. ?

0

Poszukaj coś na temat sprawdzania pojemności dysku (partycji, płyty CD) potem przyrównuj ją do czegoś. Np. if płyta CD =700 then label1.Caption:='Płyta CD'; itd. itp.
Pogłówkuj trochę, a dojdziesz do celu :)

0

Raczej marny sposób. Są przecież cd i dvd o różnej pojemności, poza tym, jak pobierzesz rozmiar dysku, to raczej wyjdzie wielkość tego, co jest nagrane, czyli np. 300 mb... Kiepska sprawa. Do tego, nie odróżnisz tak audiocd od zwykłej. Najlepsze, co mi przychodzi do głowy to szukanie na płycie plików .*cda (dla cd audio) i *.vob (dla dvd video). Pewnie jest jakiś lepszy sposób, ale szukałem tego kiedyś i ciężko znaleźć coś sensownego.

// Dopisane
Musi być coś lepszego, bo widzę, że mediaplayer mi właśnie wykrył płytę hybrydową (audio-dane) jako audio i jeszcze rozpoznał, która ścieżka nadaje się do odtwarzania, a która nie. Jeśli ktoś ma pomysł, jak czegoś takiego dokonać, bardzo chętnie usłyszę odpowiedź. A tymczasem, najsejnsowniej po plikach...

0

Znalazłem to:

Jak wykryć czy w napędzie "siedzi" płyta CD Audio.

function IsAudioCD(vDrive: Char) : Boolean;
var 
VolumeName : String;
i : integer;
begin
 Result := False;
 VolumeName:= GetVolumeName(vDrive);
 for i := 1 to Length(VolumeName) do
   VolumeName[i] := UpCase(VolumeName[i]);
  if lStrCmp(PChar(VolumeName), 'AUDIO CD')=0 then result := true;
end;
0
Opi napisał(a)

Znalazłem to:
(...)

Bo to praktycznie jedyna rzecz, którą na ten temat można znaleźć :). Tyle, że nie każda płyta zawierająca ścieżki audio ma taką nazwę :).

0

thenkles napisał tak:

Tyle, że nie każda płyta zawierająca ścieżki audio ma taką nazwę .

ale ma format *.cda

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1