假设我有一个Windows应用程序,名为app.exe
,用C#(Windows Forms)编写,在任何Windows操作系统(XP到8)下运行无人参与。如何监视C#windows应用程序的状态?
我想监视应用程序的状态:
- 是应用程序仍在运行或有坠毁
- 有应用程序运行到一个内部错误状态
我的想法是在Windows(使用任务计划程序)中设置计划任务以每15分钟运行一次Windows控制台应用程序monitor.exe
。 显示器应用程序将发送状态为app.exe
的电子邮件。
我一直无法弄清楚:
- 我如何找出是否
app.exe
仍在运行? - 如何从
monitor.exe
访问内部变量app.exe
?
一个想法是建立在app.exe
一个计时器,将写入内部状态到一个文件,并有monitor.exe
读取和评估文件每隔15分钟。但是这对我来说并不是很优雅(然而它会起作用)。
您有更好的最佳实践方法吗?
嗨,塞特,我喜欢这个主意。你的意思是像一个命名管道?哪里可以让客户端和服务器在本地交换消息? – Sebastian
@Sebastian是的,命名管道很好。具体实施可能会有所不同。 – ssett
我最终使用命名管道进行进程间通信(IPC)。这个概念对我来说是全新的,所以非常感谢@ssett指导我朝着正确的方向发展! – Sebastian