C#基于PID定期监控程序
提前感谢您的想法和意见 我想定期检查是否有第三方程序正在我的程序的用户系统上运行。我目前正在C#中启动以下程序: 我在Windows环境中启动程序并获取其pid。Putty/PLink可能会在某个时候断开与SSH服务器的连接并关闭,因此,用代码监视此过程的最佳方式是什么C#基于PID定期监控程序,c#,process,monitoring,pid,C#,Process,Monitoring,Pid,提前感谢您的想法和意见 我想定期检查是否有第三方程序正在我的程序的用户系统上运行。我目前正在C#中启动以下程序: 我在Windows环境中启动程序并获取其pid。Putty/PLink可能会在某个时候断开与SSH服务器的连接并关闭,因此,用代码监视此过程的最佳方式是什么 是否有更好的方法启动此程序以监控其成功或失败?如果要检查进程是否仍在运行,可以检查HasExited属性: Process plink = Process.Start(utilityPath + @"\putty.exe", p
是否有更好的方法启动此程序以监控其成功或失败?如果要检查进程是否仍在运行,可以检查
HasExited
属性:
Process plink = Process.Start(utilityPath + @"\putty.exe", plinkConString);
....
bool isRunning = plink.HasExited;
下面的代码将检查putty是否正在运行。如果程序已由用户启动,则它也可以工作:
bool isRunning = Process.GetProcessesByName("putty").Length > 0;
您可以使用
Process.WaitForExit()
或Process.WaitForExit(int)
,或使用Process.Exited
事件处理程序。如果您想要任何比这更复杂的行为,您也可能对Monitor
感兴趣。我相信这就是我想要的。我会尝试一下,然后再报告。谢谢你的回复!Thx用于响应。我将对WaitForExit()进行一些研究。
bool isRunning = Process.GetProcessesByName("putty").Length > 0;