marabu stellt
hier einen Code vor, mit dem man alle Buchstaben von Laufwerken eines bestimmten Typs ermitteln kann.
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;
Ein Beispielaufruf könnte so aussehen:
Delphi-Quellcode:
procedure TDemoForm.TestButtonClick(Sender: TObject);
begin
GetLogicalDriveLetters(ListBox.Items, DRIVE_CDROM);
end;
Als Laufwerkstypen können die folgenden übergeben werden:
DRIVE_UNKNOWN
DRIVE_NO_ROOT_DIR
DRIVE_REMOVABLE
DRIVE_FIXED
DRIVE_REMOTE
DRIVE_CDROM
DRIVE_RAMDISK