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: