Скрипт проверяет запущен ли процесс и, если не запущен, то запускает его. Вставляем скрипт в планировщик и получаем систему, которая автоматически отслеживает и запускает необходимое приложение. У меня так сделано для запуска FTP-сервера, например.
@ECHO OFFSETLOCALREM Файл лога:SET LOG=%~dp0\ftpserv.logSET PRG="D:\Programs\TYPSoft FTP Server\ftpserv.exe"REM Поиск в запущенных процессах нужного процесса, указанного в переменной PRG,REM и его запуск, если он не запущенSET filename=ftpserv.exeREM if "%1" neq "" set filename=%1for /f %%a in ('tasklist /nh /fi "imagename eq %filename%" ^| find /c "%filename%"') do set /a quantity=%%arem Если запущена 1 и более копий процессаif %quantity% geq 1 goto ALREADY_RUNDATE /t >> %LOG%TIME /t >> %LOG%echo No processes of %filename%! >> %LOG%rem ... Вставьте сюда свои команды, когда процесс НЕ запущен ...REM Перед запуском ftpserv приходится прибивать процесс cintanotes.exe (программа заметок)REM так как иначе при запуске ftpserv cintanotes вылетает с ошибкой.REM И пока окно с сообщением об ошибке не закроешь, ftpserv не запускается.REM После запуска ftpserv можно спокойно запускать cintanotes.taskkill /IM cintanotes.exeSTART "" %PRG%START "" "C:\Program Files (x86)\CintaNotes\cintanotes.exe":ALREADY_RUNDATE /t >> %LOG%TIME /t >> %LOG%echo Already run %quantity% processes of %filename% >> %LOG%rem ... Вставьте сюда свои команды, когда процесс запущен ...REM 25 числа каждого месяца удаляем файл лога, чтобы не рос бесконечноSET DAY=%DATE:~0,2%IF %DAY% == 25 ( IF EXIST %LOG%.bak DEL %LOG%.bak REN %LOG% ftpserv.log.bak ) :END