Status aus eine CMD Box rausfiltern?

  • Hallo, habe hier nen Programm was nur über cmd geht, ist aber ziemlich nervig immer alle befehle zu tippeln

    wollte ne gui machen, verbinden tut er, aber wie bekomme ich den Status raus ob er sich verbunden hat, Autoit info zeigt nix, selbt unter hidden data nicht

    eine txt kann man nicht erstellen, weiß da echt nicht weiter, weiß jemand was?

    würde mich auch generell für cmd interessieren ?(

    • Offizieller Beitrag

    Hi,

    sowas ...

    [autoit]

    #include <Constants.au3>
    Global $text
    Global $command = "set"

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

    $stream = Run(@ComSpec & ' /c ' & $command, '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

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

    While 1
    $textline = StdoutRead($stream)
    $text = $text & @CRLF & $textline
    If @error Then ExitLoop
    WEnd

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

    MsgBox(0, "STDOUT read:", $text)

    [/autoit]

    So long,

    Mega

  • vielen dank, so komme ich extrem weiter

    EDIT

    also, irgendwie stehe ich auf dem schlauch

    wenn ich offline bin und teste fehlt das conneten fehl, ok, das zeigt der mir an.

    wenn er allerdings die verbindung aufbaut, geht garnichts mehr

    habe also mal das cmd maximiert, immer noch der hänger, dann manuell geschlossen, dann erst komme ich an die infos, so solls ja net sein, möchte noch weiter mit der cmd box arbeiten


    so schauste in mom aus

    [autoit]

    $stream = Run(@ComSpec & ' /c ' & $command, '', @SW_MAXIMIZE, $STDERR_CHILD + $STDOUT_CHILD)

    [/autoit]

    wenn ich es auf das reduziere steht wenisgsten was in dem cmd fenster

    [autoit]

    $stream = Run(@ComSpec & ' /c ' & $command, '', @SW_MAXIMIZE)

    [/autoit]

    nunja, dann aber wieder keine info in der gui

    gibts ne ne möglichkeit einfach aller 0,5sekunden zu checken was in den aufgerufenen fenster steht? ohne auf die beendigung zu warten?


    EDIT Glaube habs gelöst, kann man es aber noch besser gestalten?
    hier mal das ganze script

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.2.4.9
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <Constants.au3>
    #include <file.au3>
    #include <array.au3>
    #include<File.au3>
    #include <GUIConstants.au3>
    #include <Process.au3>
    ;Gui erzeugen
    GUICreate("Gui",800,500)
    ;Ip,User, und PAsswort abfrae
    GUICtrlCreateLabel("IP",10,30)
    $ip1 = GUICtrlCreateEdit("",70,30,200,20,0)
    GUICtrlCreateLabel("User",10,70)
    $user1 = GUICtrlCreateEdit("",70,70,200,20,0)
    GUICtrlCreateLabel(" Passwort",10,110)
    $Pass1 = GUICtrlCreateEdit("",70,110,200,20,0)
    ;Buttons in Form von befehlen
    $verbinden = GUICtrlCreateButton("Verbinden", 130,140);Wagerechte;Höhe

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

    GUICtrlCreateLabel("Manueller Befehl",130,190)
    GUICtrlCreateEdit("",70,220,200)
    GUICtrlCreateButton("Senden",140,250)

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

    $endbutton = GUICtrlCreateButton ("Schließen",730,470)

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

    $text="Warte auf Daten"
    GUICtrlCreatelabel($text,300,10,400,420)
    GUISetState(@SW_SHOW)

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

    dim $Array
    While 1
    $msg = GUIGetMsg()
    If $msg <> 0 Then
    $IP = GUICtrlRead($IP1)
    $user = GUICtrlRead($user1)
    $pass = GUICtrlRead($Pass1)
    Select
    ;Hile Abschnittl
    case $msg = $verbinden

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

    Global $text
    Global $command = "SQLcmd.exe "&$user&" "&$pass&" "&$ip
    $text="Verarbeite"
    GUICtrlCreatelabel($text,300,10,400,420)

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

    ;Abfrage ob daten eingetragen wurden, Setze auf Iniligenz des users, das er gültige ip eingibt
    if $ip="" then
    MsgBox(0,"Achtung", "Es wurden keine IP eingetragen")
    $command=""
    EndIf

    if $user="" then
    MsgBox(0,"Achtung", "Es wurden kein Benutzername eingetragen")
    $command=""
    EndIf

    if $pass="" then
    MsgBox(0,"Achtung", "Es wurden kein Passwort eingetragen")
    $command=""
    EndIf

    MsgBox(0,"Info",$command)
    $stream = Run(@ComSpec & ' /c ' & $command, '', @SW_MINIMIZE, $STDERR_CHILD + $STDOUT_CHILD)

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

    status()

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

    ;MsgBox(0, "STDOUT read:", $text)
    ;Wie kann ich rausfiltern, nach bestimmten wort?
    ;GUICtrlCreateLabel( $Text,300,10,320,420)
    GUICtrlCreatelabel($text,300,10,400,420)

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

    Case $msg = $endbutton Or $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    EndIf
    Wend

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

    func status()
    sleep(5000)
    $text = ""
    $textline = StdoutRead($stream)
    $text = $text & @CRLF & $textline

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

    ; 217.205.160.195
    GUICtrlCreatelabel($text,300,10,400,420)
    EndFunc

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

    2 Mal editiert, zuletzt von devildevil3 (28. August 2007 um 14:39)