AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Festplatten bezeichnung

Ein Thema von delphin06 · begonnen am 28. Apr 2007 · letzter Beitrag vom 30. Apr 2007
Antwort Antwort
delphin06

Registriert seit: 18. Jun 2006
154 Beiträge
 
#1

Festplatten bezeichnung

  Alt 28. Apr 2007, 14:34
Hallo

Ich brauch dringend eure hilfe ich find einfach keine lösung für mein problem.

Also folgendes. Ich lese mit meinem Programm die Bezeichnung eines Laufwerks aus. z.B. SAMSUNG S0H2J1WL826549 USB Device.
Diese bezeichnug hole ich mir aus der registry mir folgenden code:

Delphi-Quellcode:
procedure TForm1.readdrivenames;
var Reg:TRegistry;
  I: Integer;
  regpath:String;
begin
  for I := 0 to drivesdetected - 1 do
    begin
      Reg:=TRegistry.Create;
      try
        Reg.RootKey:=HKEY_LOCAL_MACHINE;
        reg.Access:=KEY_READ;
        Reg.OpenKey('\SYSTEM\CurrentControlSet\Services\disk\Enum', false);
        if Reg.ValueExists(inttostr(I)) then
          begin
            regpath:=Reg.ReadString(inttostr(I));
          end;
        Reg.CloseKey;
      finally
        Reg.Free;
      end;

      Reg:=TRegistry.Create;
      try
        Reg.RootKey:=HKEY_LOCAL_MACHINE;
        reg.Access:=KEY_READ;
        Reg.OpenKey('\SYSTEM\CurrentControlSet\Enum\'+regpath, false);
        hddrive[i]:=Reg.ReadString('FriendlyName');
        hddrive2[i]:=Reg.ReadString('FriendlyName');
        Reg.CloseKey;
      finally
        Reg.free;
      end;
   end;
end;
in drivesdetected steht die Anzahl der Laufwerke die erkannt wurden (auch aus registry)

Allerdings gibt es ein problem. Ich muss der Laufwerksbezeichnung die echte Laufwerksnummer im system zuordnen. In der registry wird die nummer nach der reihenfolge wie die erkannt wurden vergeben. Wenn ich jetzt z.B eine festlpatte einstecke (USB) und einen stick bekommt der stick in der registry die nummer "1" und die Festplatte die nummer "2". Wenn ich den stick jetzt abziehe bekommt die Festplatte in der registry die "1" zugeordnet. im system bleibt es aber die nummer "2". also der systempfad zu der festplatte wäre also "\\.\PhysicalDrive2". da mein programm die werte aus der registry ausliest, bekommt es den pfad "\\.\PhysicalDrive1" zugeordnet.

kann ich die Bezeichnung auch anders ermitteln, damit es da keine konflikte gibt? z.B. über eine API funktion?
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Festplatten bezeichnung

  Alt 29. Apr 2007, 00:32
Hi,

letztes Mal hatte ich so ein ähnliches Problem. Mir ist dabei aufgefallen, dass die zum USB Stick gehörende ID (Bild 1) noch einmal unter SYSTEM\CurrentControlSet\Control\DeviceClasses\{53 f56307-b6bf-11d0-94f2-00a0c91efb8b} vorkommt (Bild 2). Dort ist in einem Unterschlüssel der Name SymbolicLink und mit dem langem Wert dahinter (Bild 3) konnte ich meinen USB Stick auslesen. Dabei spielte es keine Rolle ob ich noch andere Laufwerke vom USB Port abgezogen hatte oder nicht.

Die GUID {53f56307-b6bf-11d0-94f2-00a0c91efb8b} unter SYSTEM\CurrentControlSet\Control\DeviceClasses soll den Device Interface Namen Disk Device haben.
Miniaturansicht angehängter Grafiken
1_155.jpg   2_172.jpg   3_145.jpg  
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#3

Re: Festplatten bezeichnung

  Alt 29. Apr 2007, 11:08
Wie wäre es mit WMI?

> MSDN-Library durchsuchenWin32_DiskDrive > DeviceID und Model
Miniaturansicht angehängter Grafiken
unbenannt_226.jpg  
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
delphin06

Registriert seit: 18. Jun 2006
154 Beiträge
 
#4

Re: Festplatten bezeichnung

  Alt 29. Apr 2007, 13:55
Das mit der WMI sieht interessant aus! Da steht nämlich genau das was ich brauche! Der Device ID kann ich so den Namen und sogar noch die Größe zuordnen.
Jez muss ich nur noch wissen wie ich das umsetze...mal sehen

Danke auf jeden fall!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#5

Re: Festplatten bezeichnung

  Alt 30. Apr 2007, 11:28
Zitat von delphin06:
Jez muss ich nur noch wissen wie ich das umsetze...mal sehen
Hier im Forum suchenWMIDemo
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz