Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

Re: über WMI Partitionsnummer einer Partition ermitteln

  Alt 25. Sep 2006, 22:12
Zitat von Mazel:
Ja, das weis ich, nur wie kann ich das für C:\ oder für F:\ ermitteln? Momentan habe ich eine Schleife die den Index von 0-MaxX (Anzahl der Instanzen) durchläuft, aber leider weis ich nicht wie ich diesen Index einer Partition zuordne. Bei meinen 3 Partition habe ich als ausgabe nur 2 Indizes: 0 und 1 weil 0 meine Hauptpartition ist und 1 die erweiterte wobei darin D:\ und E:\ liegen.

Gruß
Mazel
Ahh so ok das geht so...

Lege dir eine Variable zu Beispiel: DevicesNames
Übergebe dieser Variablen den identifikationsstring für Laufwerke wie in der API WMI beschrieben.
Das wäre "Win32_DiskDrive".

Dann mußt du über eine loop Schleife die objecte einlesen.
GetObject('winmgmts:').InstancesOf(DevicesNames)

Als Resultat bekommst du dann alle Laufwerksnamen die sich im System befinden.

Du benötigst weitere zwei Varablen
DeviceSet : SWbemObjectSet
Device : SWbemObject

Die Eigenschaften der Platte holst du über
DeviceSet := GetObject("winmgmts:").InstancesOf('Win32_' + vPath)

wobei vPath der Name des Laufwerks ist den du vorher ermittelt hast.
Nun mußt du das Device.Properties in einer schleife durchlaufen lassen
und die ergebnisse in einen temporären string addieren

diesen mußt du nachher spliten und irgendeinem TreeView oder was auch immer addieren.
Dort pickst du dir dann den Wert heraus den du benötigst.

gruß

PS: Du kannst aber auch nach object.index vergleichen und aus der schleife rausspringen
sobald das Resultat bekannt ist.
Dann mußt du auch nix addieren. Dann allerdings muss es über Arrays ablaufen
Damit die Daten nicht verloren gehen.
  Mit Zitat antworten Zitat