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

    über mich...

    ich habe meine Erfahrungen hauptsächlich gesammelt in (grobe Übersicht):

    - RibbonBar Automation
    - MySQL Nutzung
    - GUIs in vielerlei Ausprägung
    - Nutzung von Powershell / Batch in AutoIt
    - Windows Automatisierung

    außerhalb von AutoIt:

    - Sprachen: PS, Batch, php, html(5), javascript, (perl eingeschränkt), vbs
    - Powershell (AD, WPF inkl. Multi-Threading, ...)
    - Deployment-Automatisierung ohne SCCM
    - Office-Nutzung mit COM-Object (AutoIt, PowerShell)
    - ActiveDirectory und alles was damit zusammenhängt
    - Hyper-V Clustering (Converged / Hyper Converged)
    - Serverhardware (Konfiguration, Aufbau, Architektur, Betrieb)

    Lieblingsthema:

    günstige Automatisierung von Vorgängen, für die andere Firmen viel Geld nehmen

    more to come ...