[решено] Нужен управляющий скрипт который перезапускает программу.

Ответить
Аватара пользователя
andrewua12

[решено] Нужен управляющий скрипт который перезапускает программу.

Сообщение andrewua12 »

Есть программа для получения ключей mpcs, выполняется в досовском окне, постоянно выдает сервисные сообщения.

Необходимо при определенном сообщении, ключевое слово "timeout", перезапустить программу через заданный интервал времени.
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
axlwor

Re: [решено] Нужен управляющий скрипт который перезапускает программу.

Сообщение axlwor »

Можно "тупо" пихать консоль в файл ">>file.ext" и этот файл "терроризировать" find'ом
Аватара пользователя
axlwor

Re: [решено] Нужен управляющий скрипт который перезапускает программу.

Сообщение axlwor »

Можно попробовать так:

Код:

Код: Выделить всё

#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
Ответить

Вернуться в «AutoIt»