Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Нужен управляющий скрипт который перезапускает программу. (http://forum.oszone.net/showthread.php?t=142349)

andrewua12 10-06-2009 13:31 1140035

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

axlwor 17-06-2009 12:58 1144981

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

Diamond 03-07-2009 16:16 1158257

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

#include <Constants.au3>
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


andrewua12 04-07-2009 16:09 1158920

Спасибо всем за помощь. В соседней ветке уже решено.
http://forum.oszone.net/thread-142348.html


Время: 15:29.

Время: 15:29.
© OSzone.net 2001-