Что нового

[Автоматизация] Перезапуск программы с заданными ключами при нахождении ошибки в работе

prokazzza

Новичок
Сообщения
160
Репутация
2
Всем привет! Не могу перезапустить программу при ошибке. Лог программы выводится в консоле. При выводе слова Error, необходимо перезапустить программу. Пробовал скрипты наподобии:

Код:
While 1
	$hWnd = WinWait('Logs')
		If StringInStr(ControlGetText($hWnd, '', '[CLASSNN:ConsoleWindowClass]'), 'Error') Then
            $PID = ProcessExists("program.exe")
			ProcessClose($PID)
            Run (@ScriptDir & '\program.exe')
		EndIf
    Sleep(100)
WEnd


Но ничего не получается. Следом за ним возникла другая проблема, программа запускается с выбранными параметрами. Есть ли возможность перезапустить программу с последними заданными ключами ?? Пример запуска:

Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
			
        Case $Button1
            $Program = GUICtrlRead($Combo3)
            $Key1 = GUICtrlRead($Combo1)
            $Key2 = GUICtrlRead($Combo2)
            $Key3 = GUICtrlRead($Combo4)			
            RunKey($Program, $Key1, $Key2, $Key3)
    EndSwitch
WEnd

Func RunKey($Program, $Key1, $Key2, $Key3)  
    Switch $Program
		Case $NameConcole1
            $Program = (@ScriptDir & '\program.exe')
            If $Key1 = $Name1 Then $Key11 = " +Значение 1"
            If $Key1 = $Name2 Then $Key11 = " +Значение 3"
            If $Key1 = $Name4 Then $Key11 = " +Значение 4"
            If $Key1 = $Name5 Then $Key11 = " +Значение 5"
            If $Key1 = $Name6 Then $Key11 = " +Значение 6"
            If $Key1 = $Name7 Then $Key11 = " +Значение 7"
            If $Key2 = $NameA1 Then $Key22 = " +Значение A1"
            If $Key2 = $NameA2 Then $Key22 = " +Значение A2"
            If $Key3 = $NameB1 Then $Key33 = " +Значение B1"
            If $Key3 = $NameB2 Then $Key33 = " +Значение B2"
    EndSwitch   
    Run($Program&" "&$Key11&" "&$Key22&" "&$Key33)
EndFunc
 
Верх