AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi über WMI Partitionsnummer einer Partition ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

über WMI Partitionsnummer einer Partition ermitteln

Ein Thema von Mazel · begonnen am 25. Sep 2006 · letzter Beitrag vom 25. Sep 2006
Antwort Antwort
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

über WMI Partitionsnummer einer Partition ermitteln

  Alt 25. Sep 2006, 21:16
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
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

Re: über WMI Partitionsnummer einer Partition ermitteln

  Alt 25. Sep 2006, 21:35
Zitat von Mazel:
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
Das müßte meiner Meinung nach über den index zu erreichen sein.
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ß
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#3

Re: über WMI Partitionsnummer einer Partition ermitteln

  Alt 25. Sep 2006, 21:50
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
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
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
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: über WMI Partitionsnummer einer Partition ermitteln

  Alt 25. Sep 2006, 22:26
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ß
  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 03:55 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