Devcon.exe

  • Hallo,
    ich versuche mit Devcon die Hardware ID's meines PC's auszulesen:

    [autoit]

    ShellExecute ("devcon.exe", "hwids")
    $Out = StdoutRead ("devcon.exe")
    MsgBox (0, "", $Out)

    [/autoit]

    Jedoch ist die MSG-Box leer.
    Warum?

    PS: Kurz und knackig beschrieben^^
    Info über Devcon:
    http://support.microsoft.com/kb/311272/en-us

    Einmal editiert, zuletzt von PokerFace (7. Juni 2010 um 14:51)

  • Auf Anhieb würde ich sagen, das du den Aufruf in eine Variable packen musst:

    [autoit]

    $stout = ShellExecute("devcon.exe", "hwids", $STDOUT_CHILD)
    $Out = StdoutRead($stout)
    MsgBox (0, "", $Out)

    [/autoit]

    Wobei ich auch überhaupt nicht weiß, warum du als 2.ten Parameter "hwids" angibst. Was macht der eigentlich?!? Eigentlich wird dort doch der 'Ausführungs-Ort' angegeben...

    Musst du mal Prüfen ob es so Funzt, kann es nicht Testen ;)


    [Edit]
    Ich bin mal grad deinen Link gefolgt, und weiß jetzt was hwids bedeutet...
    Dann musste es aber anders machen:

    [autoit]


    $stout = ShellExecute("devcon.exe hwids *", "", $STDOUT_CHILD)
    $Out = StdoutRead($stout)
    MsgBox (0, "", $Out)

    [/autoit]


    Konnte es aber immer noch nicht Testen, ist aber der richtige Weg.


    Grüsse!

    Einmal editiert, zuletzt von Techmix (6. Juni 2010 um 20:18)

  • Achso.
    Ich wollte quasi das ausführen:
    devcon.exe \hwids

    Und weil bei ShellExecute das 2 Attribut "Parameter" war, dachte ich es gehört da rein.

  • So geht es bei mir:

    [autoit]


    #include <Constants.au3>
    Local $line
    Local $prg = @ScriptDir & "\devcon.exe "
    Local $parameter = "hwids *"
    Local $run = Run(@ComSpec & " /c " & $prg & $parameter, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
    While 1
    $line &= StdoutRead($run)
    If @error Then ExitLoop
    Wend
    MsgBox(0, "", $line)

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • so funktioniert es:

    [autoit]

    #include <Constants.au3>
    Local $data = ''
    Local $foo = Run(@ScriptDir & '\devcon.exe hwids *', @DesktopDir, @SW_SHOW, $STDOUT_CHILD)
    While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(50)
    WEnd
    MsgBox(0, '', $data)

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)