Wie stelle ich fest, ob ein bestimmter Laufwerkstyp (z.B. CD-ROM) vorhanden ist?
Diese Funktion erstellt eine Stringliste mit allen Laufwerksbuchstaben eines bestimmten Typs und gibt als Result die Anzahl der vorhandenen Laufwerke zurück:
var DriveList : TStringList; LWCount : byte; function GetDrives(DriveType:integer):byte; var Drives : array [1..255] of char; LWListe : TStringList; i : Byte; Len : DWord; begin LWListe := TStringList.Create; {Alle Laufwerke ermitteln} Len := GetLogicalDriveStrings(255,@Drives); for i := 1 to Len-2 do if (i mod 4)=1 then LWListe.Add(copy(Drives,i,3)); {Laufwerke des angegebenen Typs zählen} Result := 0; DriveList.Clear; for i := 0 to LWListe.Count-1 do begin if GetDriveType(PChar(LWListe[i]))=DriveType then begin Result := Result+1; DriveList.Add(copy(LWListe[i],1,2)) end; end; LWListe.Destroy; end; DriveList := TStringLIst.Create; {Wechselplatten:} LWCount := GetDrives(DRIVE_REMOVABLE); {Festplatten:} LWCount := GetDrives(DRIVE_FIXED); {Netzlaufwerke:} LWCount := GetDrives(DRIVE_REMOTE); {CD-ROM:} LWCount := GetDrives(DRIVE_CDROM); {RAM-Disks:} LWCount := GetDrives(DRIVE_RAMDISK); {..Mach' was mit der DriveList..} DriveList.Free;
Delphi 1 | Delphi 2 | Delphi 3 | Delphi 4 |
nicht getestet | Version nicht betroffen | getestet |
siehe auch: