Etwas mit Edit in eine CMD schreiben und antwort in einem 2.edit anzeigen

  • Hi @ all,
    ich hab in der Hilfe datei und im Forum nach CMD gesucht um herauszufinden ob es möglich ist aber ich fand nichts dazu(auch bei den UDF´s nicht).
    ich will in einem Edit feld z.B "net user" eingeben und die antwort der CMD in einem
    zweiten edit feld aufrufen. damit man sogesagt eine in AutoIT geschrieben CMD hat.
    geht das, wen ja wie und kann mir jmd ein bsp. machen?

  • Ist zwar schon tausendmal hier im Forum als Beispiel, aber vom Prinzip her so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Constants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    GuiCreate("CMD Test")
    $InID = GUICtrlCreateEdit("",20,20,200,20)
    $start = GUICtrlCreateButton(" Start ",20,50)
    $OutID = GUICtrlCreateEdit("",20,80,300,200)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()

    Case $GUI_EVENT_CLOSE
    ExitLoop

    Case $start
    $befehl = GuiCtrlRead($InID)
    $ausgabe = ""
    $prozessID = Run(@ComSpec & ' /c "' & $befehl & '"',@ScriptDir,@SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $ausgabe &= StdoutRead($prozessID)
    If @error Then ExitLoop
    Wend
    GUICtrlSetData($OutID,$ausgabe)

    EndSwitch
    WEnd

    [/autoit]

    Die Feinheiten kannst Du jetzt selber ausbauen.... ;)

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Oh ich war wieder zu langsam.
    Und meine Antowrt ist wieder mal Falsch =(
    Naja =D
    Hoffe es bringt dir trotzdem irgendwas^^


    __________________________________

    Spoiler anzeigen
    [autoit]

    #include<WinAPI.au3>
    Global $aResult, $hConsole
    if not _WinAPI_AttachConsole() then
    $ret = DllCall("Kernel32.dll", "long", "AllocConsole")
    If $ret = 0 Then Exit MsgBox(0, 'EXIT', "No Console allocated!")
    endif

    [/autoit] [autoit][/autoit] [autoit]

    $hConsole = _WinAPI_GetStdHandle(1)
    $hConsoleIn = _WinAPI_GetStdHandle(0)
    if $hConsole = -1 then
    MsgBox(0, "Error", "GetStdHandle failed")
    Exit
    endif
    _WinAPI_WriteConsole($hConsole, "Bitte Name eingeben: ")
    $test = DllStructCreate("char[10000]")
    $read = 500
    _WinAPI_ReadFile($hConsoleIn,DllStructGetPtr($test),DllStructGetSize($test),$read)
    MsgBox(0, '', DllStructGetData($test,1))

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    if not _WinAPI_WriteConsole($hConsole, "Hello World" & @CRLF) then
    MsgBox(0, "Error", "WriteConsole Failed")
    endif
    _WinAPI_WriteConsole($hConsole, "PAUSE: ENTER druecken")
    _WinAPI_ReadFile($hConsoleIn,DllStructGetPtr($test),DllStructGetSize($test),$read)
    Exit

    [/autoit]


    Dies habe ich von ProgAndy aus dem Forum gefunden.
    Wie du siehst hat er mit


    [autoit]

    _WinAPI_ReadFile($hConsoleIn,DllStructGetPtr($test),DllStructGetSize($test),$read)
    MsgBox(0, '', DllStructGetData($test,1))

    [/autoit]

    Den Text der Konsole ausgelesen!


    Das könnte dann schonmal im 2.edit Feld stehen.

    Mit dem "senden" an die Konsole werde ich mich auch nocheinmal machen =D

    Mfg
    Benne