Допустим, у меня есть приложение Windows с именем app.exe
, написанное на C# (Windows Forms), работающее без присмотра под любой ОС Windows (от XP до 8).Как контролировать состояние приложения Windows C#?
Я хотел бы отслеживать состояние приложения:
- приложение все еще работает или он разбился
- Имеет приложение запустить во внутреннее состояние ошибки
мою идею заключается в настройке запланированной задачи в Windows (с помощью планировщика заданий) для запуска приложения Windows Console, monitor.exe
, каждые 15 минут. Приложение монитора отправит электронное письмо со статусом app.exe
.
То, что я не был в состоянии выяснить:
- Как узнать, если
app.exe
все еще работает? - Как получить доступ к внутренней переменной в
app.exe
отmonitor.exe
?
Одна идея состояла в том, чтобы установить таймер в app.exe
, который будет писать внутреннее состояние в файл, и иметь monitor.exe
чтения и оценить, что файл каждые 15 минут. Но для меня это не очень элегантно (однако это сработает).
У вас есть лучшая, лучшая практика, подход?
Привет, сетт, мне нравится эта идея. Вы имеете в виду что-то вроде именованной трубы? Где вы можете локально обмениваться сообщениями клиента и сервера? – Sebastian
@Sebastian Да, названная труба в порядке. Детальная реализация может быть разной. – ssett
В итоге я использовал именованные каналы для межпроцессного взаимодействия (IPC). Эта концепция была совершенно новой для меня, поэтому спасибо @ssett за то, что указали мне в правильном направлении! – Sebastian