Мой вариант на AutoIt: https://ru.wikipedia.org/wiki/AutoIt
https://www.autoitscript.com/site/autoit/
https://www.autoitscript.com/site/autoit/
AutoItSetOption ( "MouseCoordMode", 0 )
Do
if NOT ProcessExists("Krug.SCADA.RuntimeClientHost.exe") Then
Run("Krug.SCADA.RuntimeClientHost.exe")
WinWait("Выберите сетевой проект","",4)
WinActivate ("Выберите сетевой проект")
MouseMove(10,10)
;ControlClick("Выберите сетевой проект","OK", 132676)
MouseMove(100,100)
MouseClick("left",50,80,2,1 )
;EndIf
EndIf
Sleep(1000)
Until False
Тут кроме проверки того что программа запущена сделано нажатие нужных кнопок на экране после перезапуска.
Для вашего случая скрипт будет выглядеть как-то так:
Do
if NOT ProcessExists("ХХХХ") Then
Run("ХХХХ")
EndIf
Sleep(1000)
Until False
Путь к ХХХХ должен быть в PATH или можно его прописать в Run() полностью.
Скрипты AutoIt это текстовые файлы с расширением *.au3 в кодировке Win1251.
Скрипты можно компилировать в *.exe, после этого сам AutoIt для их работы не нужен.
Очень удобный вариант для автоматизации всяких действий на ПК. Как-то раз делал на AutoIt скрипт массово забивающий настройки в OPC-сервер. Жадные разработчики в демо-версии заблокировали функцию сохранения, а мне для проверки как оно работает нужны были десятки тегов. В итоге выяснилось что в реальных условиях этот OPC не работает никак и покупать его смысла нет.