![]() |
über WMI Partitionsnummer einer Partition ermitteln
Hallo,
ich versuche über WMI die Partitinosnummer zu ermitteln. Ich habe 3 Partitionen und nun möchte ich wissen, welchen Index die Partitionen C:\ D:\ oder E:\ haben. Ich habe mich mit WMI ein wenig beschäftigt, dabei hat mir himitsu gute Hilfestellungen gegeben und auch eine WMI Unit. Das Problem was ich habe ist, dass ich viele Informationen über WMI ermitteln kann aber nur gesamt. Ich kann meine Anfrage nicht auf C:\ oder E:\ spezialliseren, bzw ich weis nicht wie ich es machen soll. Wenn mir jemand helfen kann, wär schön. Gruß Mazel |
Re: über WMI Partitionsnummer einer Partition ermitteln
Zitat:
Aber achtung könnte sein das ältere platten keine Rückgabe für den Index enthalten. Ist zumindest bei mir der Fall Du bekommst aber nur die Position.. Also ob Platte: c:\ = 0 Platte: f:\ = 2 usw.. gruß |
Re: über WMI Partitionsnummer einer Partition ermitteln
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 |
Re: über WMI Partitionsnummer einer Partition ermitteln
Zitat:
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. |
Re: über WMI Partitionsnummer einer Partition ermitteln
Habs vergessen.
Es wird nur nach den Realnamen der Platten gescannt für den Index. Ob dieser nun c:\ oder d:\ zugeordnet wird mußt du extra überprüfen das geht mit der WMI meines erachtens nicht. Vielleicht hilft da die Registry würde es damit mal versuchen. Die Registry nach dem eingescannten Namen durchsuchen dann wirst wohl fündig werden. Müßte meineserachtens beistehen welche Platte das ist. gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:55 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