Hallo Jan,
es gibt noch mehr Möglichkeiten. Insbesondere interessieren mich die Laufwerkstypen nicht, wenn ich die freien Laufwerksbuchstaben wissen möchte:
Delphi-Quellcode:
procedure GetLogicalDriveLetters(s: TStrings; mounted: Boolean = False);
var
dw: DWORD;
i: Integer;
letter: Char;
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
if not mounted xor Odd(dw) then // Ein Rätsel für dich
s.Add(letter + ':'); // Dann ist Laufwerksbuchstabe frei
dw := dw shr 1; // Nächstes Status-Bit auf Bit-Position 0 schieben
end;
s.EndUpdate; // Visualisierung wieder einschalten
end;
procedure TDemoForm.FormCreate(Sender: TObject);
begin
GetLogicalDriveLetters(ComboBox.Items);
end;
Grüße vom marabu