Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#基于PID定期监控程序_C#_Process_Monitoring_Pid - Fatal编程技术网

C#基于PID定期监控程序

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

提前感谢您的想法和意见

我想定期检查是否有第三方程序正在我的程序的用户系统上运行。我目前正在C#中启动以下程序:

我在Windows环境中启动程序并获取其pid。Putty/PLink可能会在某个时候断开与SSH服务器的连接并关闭,因此,用代码监视此过程的最佳方式是什么


是否有更好的方法启动此程序以监控其成功或失败?

如果要检查进程是否仍在运行,可以检查
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;