Hallo zusammen,
ich komme leider nicht weiter, mein Problem ist, dass ich eine bereits kompilierte .exe (CMD Window) auslesen muss.
Leider wird nicht alles ausgelesen, lediglich bis der Updateprozess beginnt (dieser zeit den Fortschritt des Downloads an, um genau den geht es mir)
Lediglich wenn das CMD-Window geschlossen(!) wird, wird angezeigt was in ihm gestanden hat, aber eben nicht "live". =/
Spoiler anzeigen
#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate("Test")
[/autoit] [autoit][/autoit] [autoit]$ServerLog = GUICtrlCreateEdit("", 5, 5, 300 - 10, 300 - 10)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]Local $shell = Run(@ScriptDir & "\steamcmd.exe" & " steamcmd +runscript 0_firstinstall.txt", @ScriptDir, @SW_SHOW, 0x2)
WinWaitActive (@ScriptDir & "\steamcmd.exe" )
While 1
$line = StdoutRead($shell)
If @error Then ExitLoop
$EditOld = GUICtrlRead($ServerLog)
GUICtrlSetData($ServerLog, $line & @CRLF & $EditOld)
sleep(200)
Wend
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Wie kann ich das Problem beheben?
Anbei ein Screenshot der CMD Console alles im roten Frame wird ausgegeben, darunter erst nachdem die Console geschlossen wird.
Handelt es sich evtl um einen großen zusammenhängenden ablauf? So das
[autoit]StdoutRead
[/autoit]selbigen erst nach komplettierung anzeigt? (Bzw. bei Abbruch, weil der Prozess unterbrochen wird)
Gibt es da evtl einen Workaround? Der das ganze in Zeilen splitten kann?