Einzelnen Beitrag anzeigen

kumar89
(Gast)

n/a Beiträge
 
#1

Buchstabenpfade nicht doppelt auflisten

  Alt 15. Jun 2009, 10:54
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 := 'Ato 'Zdo //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
  Mit Zitat antworten Zitat