Hier ein wenig Code für einen anderen Ansatz:
Delphi-Quellcode:
procedure GetLogicalDriveLetters(s: TStrings; driveType: Word);
var
dw: DWORD;
letter: Char;
rootDir: string;
begin
s.BeginUpdate; // Visualisierung abschalten
s.Clear; // Mit leerer Liste beginnen
dw := GetLogicalDrives; // Mount-Status aller Laufwerksbuchstaben
for letter := 'A' to 'Z' do // Schleife über alle Laufwerke
begin
rootDir := letter + ':\';
if Odd(dw) and (GetDriveType(PChar(rootDir)) = driveType) then
s.Add(letter + ':');
dw := dw shr 1; // Nächstes Status-Bit auf Bit-Position 0 schieben
end;
s.EndUpdate; // Visualisierung wieder einschalten
end;
procedure TDemoForm.TestButtonClick(Sender: TObject);
begin
GetLogicalDriveLetters(ListBox.Items, DRIVE_CDROM);
end;
Hier gestohlen:
klick
Grüße vom marabu