Свежие обсуждения
Компьютеры

Периодический запуск программы - как "обмануть" NTшный sheduler ?

1 2

Ситуация такая.
Есть некоторая программа в виде самодостаточного exe-шника, назовем ее pr.exe.
Сразу после запуска эта программа создает файл с данными в определенном месте (на лок. сети), которое задано в настройках, и периодически обновляет его содержимое (по мере поступления данных с изм.обор.)
Если попытаться запустить второй экземпляр этой программы, то он, обнаружив наличие файла с данными в заданном месте, сразу автоматически завершит работу, - запуск более 1 копии невозможен при наличии этого файла.

Беда случается в случае сбоя в источнике данных, что случается 1 раз в приблизительно 2-3 дня непрерывной работы. Тогда файл с данными при очередной попытке его обновления стирается, а процесс pr.exe продолжает висеть с выдачей сообщения.

Идея была, используя планировщик заданий Windows XP, периодически пытаться запускать pr.exe, скажем раз в 30 минут. Тогда, если 1-й экземпляр программы упал, становится возможным запуск 2-го, он запускается, работает пока не произойдет сбой, потом 3-й и т.д.

Не тут-то было!
Планировщик заданий и не пытается сделать очередной запуск, если видит, что процесс ранее им запущенный, не завершен (предыдущее "задание" еще "не выполнено").

Может написать пакетный файл какой-нибудь? Но моих познаний хватило только на два варианта
1) call pr.exe
2) cmd /c pr.exe
И то и другое оказалось по поведению эквивалентно "явному" запуску pr.exe - до завершения процесса очередное "задание" не пытается выполниться по расписанию.

Что посоветуете?

 

AR®: а процесс pr.exe продолжает висеть с выдачей сообщения.
Каким?

 

Что каким?

 

Ессно сообщением. Окошко винды типа о ошибке?

 

Главное и единственное окно этой программы и MessageBox с текстом о сбое и единственной кнопкой OK на нем, после нажатия которой оба закрываются (и процесс pr.exe прекращается).

 

скриншот подобного можно? есть одна идейка.

 

Нет. А зачем? MessageBox - этой программы, не виндовый гпф.
Проблема-то не в этом.
Как заставить малой кровью sheduler запускать pr.exe по расписанию и не смотреть при этом, завершился ли ранее им запущенный - вот в чем вопрос.
То, что их (pr.exe ) может "накопиться" штук 5-10 - соершенно некритично.

 

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

 

Спасибо конечно, но если "через программирование", то я знаю и др.способы решения.
По некоторым причинам хотелось бы воспользоваться штатными возможностями Windows XP.

 

Ну хозяин - барин.