сторожевой таймер в приложении vc ++

Я написал простое фоновое приложение vc ++. То, что я пытаюсь, похоже на службу наблюдения, которая может отслеживать, работает приложение или нет. В случае сбоя приложения служба должна запустить приложение

Для создания установки через установщик Windows использую только app.exe и app.dll.
Возможно ли создать этот сторожевой сервис в самом exe?

К сожалению, я понятия не имею, как написать такую ​​программу. У кого-нибудь есть пример кода, который продемонстрировал бы эту технику, пожалуйста?

если так, то как сделать exe по умолчанию и exe сторожевого таймера как одно приложение для установки?

2

Решение

Ваш лучший маршрут — создать отдельный сервис, который будет выполнять функции сторожевого пса. Технически, сервис и «реальное приложение» могут быть в одном исполняемом файле. Вы можете различать их в зависимости от того, как исполняемый файл был запущен, но это усложнит обслуживание.

это статья может быть интересным.

1

Другие решения

Вот — http://yadi.sk/d/EtzBRSMi3FqVH — моя реализация приложения WatchDog, работающего в systray. Не против того, что он написан на Qt — основной функционал — на WinAPI.
Это приложение наблюдает в списке процессов за несколькими процессами и перезапускает их, если не может найти. Вторая особенность заключается в том, что он отслеживает все окна в системе на предмет подозрительного заголовка окна (например, «My Great App» вызывает системную ошибку и будет закрыт. Отправить сообщение разработчикам? ») И, если найдет, перезапустит их тоже

Постскриптум Я этого не делал, но, думаю, проблем не будет)

Обновить: (согласно комментарию @CodyGray)

Вот ссылки на pastebin: WatchDog.cpp а также WatchDog.h

1

Такой сторожевой таймер может быть настроен, например, на запись в файл каждую минуту (или что угодно). Если файл не обновлялся в течение двух или более минут, то, скорее всего, в приложении возникла тупиковая ситуация, и его необходимо перезапустить.

0
По вопросам рекламы [email protected]