WMI, Arrays auslesen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von YEE.

    WMI, Arrays auslesen

    Hallo zusammen,
    benutze folgenden Code:

    Visual Basic-Quellcode

    1. Private Function GetGpuName() As String
    2. Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_VideoController")
    3. For Each obj As ManagementObject In searcher.[Get]()
    4. If Not (obj Is Nothing) Then
    5. Return CStr((obj.Properties("Name").Value))
    6. End If
    7. Next
    8. End Function


    um diverse Eigenschaften aus WMI rauszuziehen.
    Dabei ist mir heute Mittag aufgefallen, das nicht alles als string vorliegt, sondern einige Werte als array zurück gegeben werden.
    Dies führt dazu, das ich mit meiner Methode zwar den ersten bekomme, aber die restlichen nicht.
    Jetzt steh ich natürlich auf dem Schlauch.

    Habe Google bemüht und bin auch auf diese Lösung gestoßen
    vbforums.com/showthread.php?48…s-in-a-WMI-property-array

    Kann es allerdings nicht so recht an meins adaptieren.

    Bedanke mich im vorraus für hilfreiche Beiträge. :)
    Danke Dir für Deinen Versuch Morrison.
    Aber das war mir noch eine Nummer zu hoch, das Projekt ;)

    Habe die Lösung dann doch noch selber hier im Forum gefunden:
    Mehrere Werte aus einer WMI abfrage

    Mein etwas abgewandelter Code:

    VB.NET-Quellcode

    1. Public Sub SearchToArray(ByVal [Class] As String, ByVal [Property] As String)
    2. Dim searcher As New ManagementObjectSearcher("SELECT * FROM " & [Class])
    3. For Each queryObj As ManagementObject In searcher.Get()
    4. If (queryObj([Property]).ToString) <> "" Then
    5. Label1.Text = Label1.Text & (queryObj([Property]).ToString) & vbCrLf
    6. End If
    7. Next
    8. End Sub


    Kann man dann leicht selbst umändern, ob Prozedur oder Funktion.