Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lokale Laufwerke auslesen ohne Netzwerk (https://www.delphipraxis.net/135757-lokale-laufwerke-auslesen-ohne-netzwerk.html)

kumar89 17. Jun 2009 10:23


Lokale Laufwerke auslesen ohne Netzwerk
 
sers Delphi-programmierer,

nämlich such ich eine Möglichkeit lokale Laufwerke auszulesen mit Laufwerksbuchstaben, ich hätte da eine blos die liest die Netzlaufwerke mit, die ich aber schon durch die registry lies daher wird die doppelt aufgezählt. Die Laufwerke werden in einer Listbox ausgegeben.


Danke schon mal im voraus :-D

Sharky 17. Jun 2009 10:38

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Hai kumar89,

ich hoffe ich habe deine Frage richtig verstanden. Bei dem Satzbau ist das nich so leicht!

Schaue dir mal das hier an. Mit einer kleinen Anpassung solltest Du dein Problem lösen können.

DP-Maintenance 17. Jun 2009 10:38

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Multimedia" nach "Sonstige Fragen zu Delphi" verschoben.
Was hat das den mit Multimedia zu tun?

DeddyH 17. Jun 2009 10:59

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Was passt Dir denn an der im anderen Thread aufgezeigten Vorgehensweise nicht?

mquadrat 17. Jun 2009 11:58

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Doppelte Einträge kann man doch in einer Stringlist einfach ignorieren lassen. :gruebel:

kumar89 17. Jun 2009 12:06

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Zitat:

Zitat von DeddyH
Was passt Dir denn an der im anderen Thread aufgezeigten Vorgehensweise nicht?

funktioniert nicht da bei mir die buchstaben einmal aufgezählt und einmal der gleiche buchstabe aber mit dem dazugehörigen laufwerk.

DeddyH 17. Jun 2009 12:16

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Den Satz hab ich nicht verstanden. Mach doch zur Not mal einen Screenshot und häng den an.

kumar89 17. Jun 2009 12:28

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Liste der Anhänge anzeigen (Anzahl: 1)
ein bild der listbox, die unteren leeren buchstaben möchte ich weg bekommen.

DeddyH 17. Jun 2009 12:30

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Wo kommen die denn her? Zeig doch mal, wie Du die Listbox befüllst, ich hab das Gefühl, Du moppelst doppelt :mrgreen:

kumar89 17. Jun 2009 12:39

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Des wären die Netzlaufwerke die muss ich so auslesen da ich die Namen von den Netzlaufwerken brauch geht weiter alphabetisch so bis Z.


Delphi-Quellcode:
begin                         // Netzwerk A
regist := TRegistry.Create;
  try
    regist.RootKey := HKEY_CURRENT_USER;
    try
      regist.OpenKey('Network\A', false);
      ListboxDrives.Items.add(regist.CurrentPath[9] + ': ' + regist.ReadString('RemotePath'));
    except
    end;
  finally
    regist.free;
  end;
 begin                         // Netzwerk B
regist := TRegistry.Create;
  try
    regist.RootKey := HKEY_CURRENT_USER;
    try
      regist.OpenKey('Network\B', false);
      ListBoxDrives.Items.add(regist.CurrentPath[9] + ': ' + regist.ReadString('RemotePath'));
    except
    end;
  finally
    regist.free;



So les ich die lokalen Laufwerke aus

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;

GetDrives(ListBoxDrives.Items);

Ich hoffe du kommst damit klar wenn net, ruhig fragen :D

DeddyH 17. Jun 2009 13:39

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Du könntest doch in "GetDrives" eine Abfrage einbauen, ob es sich um ein lokales Laufwerk handelt, wenn Du schon unbedingt aus der Registry lesen willst.

kumar89 17. Jun 2009 14:17

Re: Lokale Laufwerke auslesen ohne Netzwerk
 
Zitat:

Zitat von DeddyH
Du könntest doch in "GetDrives" eine Abfrage einbauen, ob es sich um ein lokales Laufwerk handelt, wenn Du schon unbedingt aus der Registry lesen willst.

ich wüsst jetzt net wie des gehen sollte. :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz