WMI Frage

  • Allgemein

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

    Hallo liebe Community!

    Ich hab mal eine anfänger Frage:
    Ich hab hier diese Funktion:

    VB.NET-Quellcode

    1. Public Overloads Shared Function Main() As Integer
    2. Try
    3. Dim searcher As New ManagementObjectSearcher( _
    4. "root\CIMV2", _
    5. "SELECT * FROM Win32_SoundDevice")
    6. For Each queryObj As ManagementObject In searcher.Get()
    7. Console.WriteLine("-----------------------------------")
    8. Console.WriteLine("Win32_SoundDevice instance")
    9. Console.WriteLine("-----------------------------------")
    10. Console.WriteLine("ProductName: {0}", queryObj("ProductName"))
    11. Next
    12. Catch err As ManagementException
    13. MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
    14. End Try
    15. End Function


    Kein Fehler kommt,

    Die frage ist nur, wie rufe ich diese funktion correct auf?
    Ich bezweifle, dass dies so funktioniert:

    VB.NET-Quellcode

    1. MsgBox(Form1.Main())


    Denn hier wird mir nur 0 zurück gegeben.

    Bitte um Hilfe und Danke im Vorraus.


    Edit:// Oder liegt dass vll an der Hardware?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Du müsstest es so aufrufen können, jedoch die Funktion liefert ja keinen Rückgabewert. Außerdem schreibt die Funktion was in die Konsole --> Ist dein Projekt ein Konsolenprojekt?

    mfg
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Das ist eine Konsolen Anwendung, probiers mal so:



    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Shared Function GetInfo
    2. Try
    3. Dim searcher As New ManagementObjectSearcher( _
    4. "root\CIMV2", _
    5. "SELECT * FROM Win32_SoundDevice")
    6. For Each queryObj As ManagementObject In searcher.Get()
    7. Return queryObj("ProductName")
    8. Next
    9. Catch err As ManagementException
    10. Return err.Message
    11. End Try
    12. End Function
    Danke an ThuCommix (und an Fury) klappt!


    An dieser stelle noch eine Frage:

    Wisst ihr wie man über WMI infos über die Grafik bzw. Soundkarte ermitteln kann.

    Ich bräuchte eigentlich nur diesen Name.
    Derzeit:
    Win32_SoundDevice
    Das ist es Ja nicht. (war mir klar)

    Und natürlich auch in welchem Root.
    Derzeit:
    root\CIMV2
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Schau doch mal bei MSDN nach. Da sind die WMI - Classes (ich glaub über das findest du die auch) auch aufgelistet.
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Hab geschaut aber genau die find ich nicht (oder ich habs übersehen )

    WMI Classes (Windows) - Übersicht --> Computer System Hardware
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Win32_SoundDevice ist doch dabei.
    msdn.microsoft.com/en-us/library/aa394463(v=VS.85).aspx
    Dort kannste dann den Rest auslesen.
    mfg
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Ich weiß..... (siehe ersten Post)

    Ich habe also (Nach deiner Aussage) diesen Code:

    VB.NET-Quellcode

    1. Public Shared Function GetInfo()
    2. Try
    3. Dim searcher As New ManagementObjectSearcher( _
    4. "root\CIMV2", _
    5. "SELECT * FROM Win32_SoundDevice")
    6. For Each queryObj As ManagementObject In searcher.Get()
    7. Return queryObj("Name")
    8. Next
    9. Catch err As ManagementException
    10. Return err.Message
    11. End Try
    12. End Function


    Ich bezweilfe dass meine Soundkarte USB-Audiogerät heißt.
    Daraus schließe ich dass das nicht die Audiokarte ist. (Ich kann mich natürlich auch irren)

    Ausserdem würde ich noch um die Grafikkarte bitte
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    So würde ich es lösen. Aber möglicherweise unterstützt dein PC WMI nicht komplett?! wodurch nicht alles ausgelesen werden kann.
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    Weiß jmd. anderes eine lösung?

    @Fury was kommt bei dir denn da raus?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Ich habs noch nicht ausprobiert. Aber ich hatte schonmal mit WMI gearbeitet, da war es eine ähnliche Lösung.
    Jetzt schnell und einfach das Zehnfingersystem mit Scribble 3 erlernen. Mehr Informationen und Download gibts hier. Redundancy2 - leichtgewichtige freie Cloudsoftware. Folge mir auf GitHub
    könnts mal wer testen was da rauskommt?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Könnte jmd. dass bitte testen...

    Hier die dll:
    Download
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    @Gather: Warum? Waruuuum? -> "Option Strict On" erfordert, dass alle Funktions-, Eigenschafts- und Operatordeklarationen eine As-Klausel enthalten. ^^

    Was genau ist denn in der Dll drin? Der Code von oben?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Die dll braucht man zum testen dieses Codes....(verweis setzen..Import System.Management)

    Dann muss du nurnoch dieses code testen:

    VB.NET-Quellcode

    1. Public Shared Function GetInfo()
    2. Try
    3. Dim searcher As New ManagementObjectSearcher( _
    4. "root\CIMV2", _
    5. "SELECT * FROM Win32_SoundDevice")
    6. For Each queryObj As ManagementObject In searcher.Get()
    7. Return queryObj("Name")
    8. Next
    9. Catch err As ManagementException
    10. Return err.Message
    11. End Try
    12. End Function


    Oder du schreibst sie um wie du meinst.


    Edit:// Ich will nur wissen was bei euch da raus kommt.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()

    Wenn ich den Rückgabewert in der Console ausgeben lasse, steht bei mir: "High Definition Audio-Gerät".
    Ich musste aber noch ein paar Fehler im Code beheben, zB. Shared funktionierte nicht, ebenso ist der Code nicht ganz Option Strict On^^

    Bild:


    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Dancger“ ()

    Dancger kannst du mir mal den Code hochladen (im vb-tag)

    Und das bild kann ich nicht sehn...error 403.

    wäre nett wenn dus als anhang hinzufügst.


    Edit://
    Und wie ist das, wenn du das ganze in ner windows form anwendung machst...(weil so, kommt bei mir irgendwie was anderes raus.)


    Edit2://
    Denn wenn ich eine Konsolen anwendung mach gehts auch.


    Edit3://
    Danke bei mir kommt das jez auch, dann schätz ich mal es klappt.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gather“ ()

    Mhrmpf -.-

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Management
    3. Module Module1
    4. Sub Main()
    5. Console.WriteLine(GetInfo)
    6. Threading.Thread.Sleep(5000)
    7. End Sub
    8. Public Function GetInfo() As String
    9. Try
    10. Dim searcher As New ManagementObjectSearcher( _
    11. "root\CIMV2", _
    12. "SELECT * FROM Win32_SoundDevice")
    13. For Each queryObj As ManagementObject In searcher.Get()
    14. Return queryObj("Name").ToString
    15. Next
    16. Catch err As ManagementException
    17. Return err.Message
    18. End Try
    19. End Function
    20. End Module


    Edit: To Late :D

    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...
    Bei mir bekomme ich den Namen meines Webcammikros ausgegeben (also Mikrofon bla bla Modell)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.