1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| Laufwerke ermitteln (Festplatte, CD, Ram-Disk...) GetLogicalDrives
--------------------------------------------------------------------------------
Folgende Procedure ermittelt alle installierten Laufwerke. Sie erwartet als Parameter eine Liste, die mit den Laufwerksnamen und -typen gefüllt wird:
procedure GetDrives(const AItems: TStrings); const DriveTypeTexts: array[DRIVE_UNKNOWN..DRIVE_RAMDISK] of String = ('Unbekannt', 'Kein Wurzelverzeichnis', 'Diskette', 'Festplatte', 'Netzlaufwerk', 'CDROM', 'RAMDisk'); var Drive: Char; DriveType: Integer; DriveMask: Integer; Flag: Integer; begin DriveMask:=GetLogicalDrives; flag:=1; for Drive := 'A' to 'Z' do begin if (flag and DriveMask)<>0 then begin DriveType := GetDriveType(PChar(Format('%S:\',[Drive]) ) ) ; AItems.Add(Format('%s: %s', [Drive, DriveTypeTexts[DriveType]])); end; flag:=flag shl 1; end; end; Die Funktion GetLogicalDrives gibt ein Bitmuster zurück, welches die verfügbaren Lauwerke angibt. Ist ein Bit auf 1 gesetzt, ist das Laufwerk vorhanden und kann erkannt werden.
Es wird zwischen Festplatten, Wechsellaufwerken, CD-ROM/DVD-Laufwerken, Netzlaufwerken und RamDisks unterschieden. Ein Beispielaufruf sieht so aus:
procedure TForm1.Button2Click(Sender: TObject); begin GetDrives(Listbox1.Items) end; |