cmd aus autoit aurfufen=> Problem

  • hi leute

    schreibe gerade (im meinen augen^^) ein etwas größere Programm

    wo stockt ist die ausführung einer datei mit batch und variablen

    das was gesendet wird bzw geöffnet stimmt

    aber das dos fenste rist viel zu kurzs auf, entweder es ligt an falschen parameter für die rar.exe (von winrar, ligt in system32 ordenr)

    oder autoit, jetzt müsste ich rausfinden was in den fenster steht, das wird aber leider so schnell wieder geschlossen

    hier mal das script

    Spoiler anzeigen
    [autoit]


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

    AutoIt Version: 3.1.1.0
    Author: myName

    Script Function: Gibt ein PAsswort mehrmals ein
    Template AutoIt script.
    to do list: prozess überprüfen falls winrar2 schon läuft
    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <file.au3>
    #include <array.au3>
    #include <GUIConstants.au3>
    #include <Misc.au3>
    #Include <process.au3>
    FileDelete("C:\Passwort.txt")
    Dim $array[1]
    GUICreate("Winrar Passwort", 700, 450)
    GUICtrlCreateLabel("Hier Passwort eintragen", 10, 15)
    $number1 = GUICtrlCreateEdit("", 180, 15, 500, 20, 0)
    $save = GUICtrlCreateButton(" Speichern", 50, 410)
    GUICtrlCreateLabel("Nur einmal starten!", 370, 390)
    $pass = GUICtrlCreateButton(" Passworteingeber starten", 370, 410)
    $endbutton = GUICtrlCreateButton("Schließen", 600, 410)
    $Auto = GUICtrlCreateButton("Automtisch", 210, 410)
    GUICtrlCreateLabel("Entpackt alle Dateien (*.part1)", 210, 350)
    GUICtrlCreateLabel("in einen Verzeichnis nach ", 210, 370)
    GUICtrlCreateLabel("Verzeichnis nach Wunsch", 210, 390)
    GUICtrlCreateLabel("speichert das Passwort ", 50, 370)
    GUICtrlCreateLabel(" in einer txt", 50, 390)
    GUICtrlCreateLabel(" ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", 0, 80)
    GUICtrlCreateLabel(" ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------", 0, 330)
    GUICtrlCreateLabel("Dieser Abschnitt dient nur für den Automatischen Modus", 10, 100)
    GUICtrlCreateLabel("Ordner mit RAR-Archiven", 10, 120)
    GUICtrlCreateLabel("Typ des Archiv´s", 10, 190)
    GUICtrlCreateLabel("Zielverzeichnis wählen", 10, 250)
    $Pfad = GUICtrlCreateButton("Pfad...", 10, 150, 50, 20, 0)
    $Typ = GUICtrlCreateCombo("Typ wählen", 10, 210, 150, 30)
    GUICtrlSetData(-1, "*.rar|*.part1.rar|*.001")
    $Ziel = GUICtrlCreateButton("Ziel", 10, 270, 50, 20, 0)
    GUISetState(@SW_SHOW)
    While 1
    $msg = GUIGetMsg(0)
    If $msg <> -3 Then
    $zahl1 = GUICtrlRead($number1)
    $TYP1 = GUICtrlRead($Typ)
    $Ziel1 = GUICtrlRead($Ziel)
    $Pfad1 = GUICtrlRead($Pfad)

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

    Select
    Case $msg = $save
    FileDelete("C:\Passwort.txt")
    FileWrite("C:\Passwort.txt", $zahl1)
    Sleep(500)
    Case $msg = $pass
    Run("Winrar2.exe")
    Case $msg = $Auto
    ;MsgBox(0, "Aktion beendet:", @ComSpec & ' /C rar e ' & $TYP1 & ' "' & $sel2_folder & '" "' & $sel_folder & '"')
    $val = RunWait(@ComSpec & ' /C rar e "' & $TYP1 & '" "' & $sel2_folder & '" "' & $sel_folder & '"')
    Case $msg = $Ziel
    $sel_folder = FileSelectFolder("Zielsuche", "", 1)
    Case $msg = $Pfad
    $sel2_folder = FileSelectFolder("Ordner mit Rar-Dateien", "", 1)
    Case $msg = $endbutton Or $msg = $GUI_EVENT_CLOSE
    Exit
    ExitLoop
    EndSelect
    EndIf
    WEnd

    [/autoit]
  • Hi...

    habs bestimmt nich richtig verstanden, aba wie wär es mit einem "Sleep" oO


    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

  • ich möchte nur sehen was in dem cmd fenster steht, das sleep beziht sich auf das script, was ja theoretisch nichts bringt, es eght um das cmd fnster, möchte eventuelle fehlermeldungen sehen

    gute nacht, bin müd ;) morgen ist auch noch ein tag

  • video von machen und in slowmotion abspielen? ;)
    Einfachste lösung ^__^
    Zu aufnehmen: z.B.: HyperCam2

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • naja...sleep würde das skript ausführen unterbrechen..

    Weiss ja nich ob das schnelle Beenden mit dem Skript zusammen hängt (also ob es per Skript gestartet wird)

    sonst evt mit WinWait????

    Ach was solls ich hab kp^^


    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    2 Mal editiert, zuletzt von Waluev (29. März 2007 um 21:51)

  • HI!
    ich kenn mich auch ein bissl mit Batchprogrammierung aus :D
    Das ist garnet ma sone schlecht Idee von Carsten! Hehe "Pause" ist sogar der befehl!
    Dann muss man einfach irgend eine taste drücken un dann gehst weiter!

  • wie wärs wenn du die ausgabe einfach in ne text datei umleitest?? viel einfach als all das andere damit ist der debug auch einfacher....

    Code
    ipconfig /all >>C:\ipconf.txt


    danach geh mal auf C: und such ne ipconf.txt......

    @basslord sowas kann man umgehen.....^^ z.b. wenn du format c schreibst fragt er ja jedesmal nach ob du das wirklich machen willst....mit den richtigen befehlen in ner batch merkt der user gar nichts.....und irgendwann geht sein pc aus und der mtldr is missing->neuse windo$ hilft^^

    • Offizieller Beitrag

    Nutze doch das Flag STDOUT der Funktion Run und lies die Rückgabewerte mit StdoutRead() aus.
    Bsp. ungetestet

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>

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

    $foo = Run(@ComSpec & ' /C rar e "' & $TYP1 & '" "' & $sel2_folder & '" "' & $sel_folder & '"', @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)

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

    While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
    Wend

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

    While 1
    $line = StderrRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDERR read:", $line)
    Wend

    [/autoit]
  • ah vielen dank, das hilft enorm der letzt tipp, der zeigt mir das es keine dateien gibt die extrahiert werden können, also ligts an den befehlen für die rar.exe

    setzte das voerst auf erledigt

    danke leute