Необходимо при определенном сообщении, ключевое слово "timeout", перезапустить программу через заданный интервал времени.
- Вложения
- Вложения
Код: Выделить всё
#include
Dim $foo, $line, $RunningFlag = True
HotKeySet("{ESC}", "Stoped")
While $RunningFlag
$foo = Run("mpcs-0.8k-rc13o-i386-pc-cygwin.exe", "", 1, $STDOUT_CHILD)
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
If StringInStr(OemToChar($line), "Искомая строка") Then
ProcessClose($foo)
If Not ProcessWaitClose($foo, 5) Then
MsgBox(16,"Ошибка", "Не смог завершить процесс.")
Exit(1)
EndIf
ExitLoop
EndIf
Wend
WEnd
Func Stoped()
$RunningFlag = False
EndFunc
Func OemToChar($String)
Local $pBuffer = DllStructCreate('char[' & StringLen($String)+1 & ']')
DllCall('user32.dll','none','OemToChar','str',$String,'ptr',DllStructGetPtr($pBuffer))
Return DllStructGetData($pBuffer,1)
EndFunc