Я написал простое фоновое приложение vc ++. То, что я пытаюсь, похоже на службу наблюдения, которая может отслеживать, работает приложение или нет. В случае сбоя приложения служба должна запустить приложение
Для создания установки через установщик Windows использую только app.exe и app.dll.
Возможно ли создать этот сторожевой сервис в самом exe?
К сожалению, я понятия не имею, как написать такую программу. У кого-нибудь есть пример кода, который продемонстрировал бы эту технику, пожалуйста?
если так, то как сделать exe по умолчанию и exe сторожевого таймера как одно приложение для установки?
Ваш лучший маршрут — создать отдельный сервис, который будет выполнять функции сторожевого пса. Технически, сервис и «реальное приложение» могут быть в одном исполняемом файле. Вы можете различать их в зависимости от того, как исполняемый файл был запущен, но это усложнит обслуживание.
это статья может быть интересным.
Вот — http://yadi.sk/d/EtzBRSMi3FqVH — моя реализация приложения WatchDog, работающего в systray. Не против того, что он написан на Qt — основной функционал — на WinAPI.
Это приложение наблюдает в списке процессов за несколькими процессами и перезапускает их, если не может найти. Вторая особенность заключается в том, что он отслеживает все окна в системе на предмет подозрительного заголовка окна (например, «My Great App» вызывает системную ошибку и будет закрыт. Отправить сообщение разработчикам? ») И, если найдет, перезапустит их тоже
Постскриптум Я этого не делал, но, думаю, проблем не будет)
Обновить: (согласно комментарию @CodyGray)
Вот ссылки на pastebin: WatchDog.cpp а также WatchDog.h
Такой сторожевой таймер может быть настроен, например, на запись в файл каждую минуту (или что угодно). Если файл не обновлялся в течение двух или более минут, то, скорее всего, в приложении возникла тупиковая ситуация, и его необходимо перезапустить.