Hallo Autoit'ler
Ich möchte gerne anhand eines Beispieles erfahren wie ein sich dynamischer Wert(also ein sich immer wieder verändernder Wert) aus einer @comspec (oder CMD.exe) auslesen lässt.
Als Beispiel habe ich mal den lame encoder Vorgang genommen. In einer laufenden cmd box wird unter vielen informationen zum encoden auch ein Prozentwert ausgegeben. diesen möchte ich dann z.b. in eine Windows progressbar übergeben.
Bin schon Öfters auf so ein Problem gestoßen, habe es dann jedoch umgangen indem andere Autoit Scriptfunktionen gefunden habe die das Consolenprogramm ersetzt haben. Sicherlich gibt es auch hier eine solche lösung, jedoch möchte ich Erfahren ob es auch so machbar ist. Gesehen hatte ich schon das es via DLL funktion im falle von Lame funktioniert, jedoch ist das im mom nicht die antwort auf meine Frage.
Spoiler anzeigen
$output = _getDOSOutput(@ScriptDir & "\lame.exe input.wav output.mp3")
[/autoit] [autoit][/autoit] [autoit]; hier der code zum auslesen und erstellen des Prozessbars !?!
[/autoit] [autoit][/autoit] [autoit]Func _getDOSOutput($command)
Global $text = '', $Pid = Run('"' & @ComSpec & '" /c ' & $command, '', @SW_HIDE, 2)
While 1
$text &= StdoutRead($Pid, False, False)
If @error Then ExitLoop 2
Sleep(10)
Return $text
WEnd
EndFunc ;==>_getDOSOutput
[/autoit]oder kann man Stdoutread nicht dynamisch benutzen ?!?
Gruß
Pretrojaner