Sers Delphi-Programmierer,
nämlich erstell ich ein Programm um Systeminformationen auszulesen. Zurzeit steh ich auf dem Schlauch, nämlich les ich aus der Registry einzeln die Netzlaufwerke (da ich die einzelnen Namen der Netzlaufwerke brauch) und mit der function getlocaldrives die einzelnen Laufwerke aus dabei werden die Netzlaufwerke doppelt aufgelistet bzw. nur die Laufwerksbuchstaben. Dabei liste ich beides in einer TListbox auf. Dabei würde ich gern dass der Laufwerksbuchstabe nur 1 mal erscheint, da schon die Netzlaufwerke mit den jeweiligen Buchstaben vergeben sind.
Delphi-Quellcode:
procedure TfrmSystemInfo.GetDrives(const AItems: TStrings); //lokale Laufwerke
const
DriveTypeTexts: array[DRIVE_UNKNOWN..DRIVE_RAMDISK] of string =
('Unbekannt', 'Kein Wurzelverzeichnis', 'Diskettenlaufwerk', 'Festplatte','',
'DVD-Laufwerk', 'RAMDisk');
var
Drive: Char;
DriveType: Integer;
DriveMask: Integer;
Flag: Integer;
begin
DriveMask := GetLogicalDrives;
flag := 1;
for Drive := 'A' to 'Z' do //Jeden Buchstaben gegenprüfen
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;
Vielen Dank im voraus
Mit freundlichen Grüßen
kumar89