检测启动的进程是否已关闭

本文关键字:是否 进程 启动 检测 | 更新日期: 2023-09-27 18:03:15

c#我想检测一个已启动的程序是否已关闭。我现在用命令

启动它
 Process.Start(Environment.CurrentDirectory + @"'Card Downloader.exe"); 

有没有人有办法做到这一点,也许使用不同的启动器?

检测启动的进程是否已关闭

Process.Start方法返回一个Process实例。在这种情况下,您可以使用一些可用的方法,如WaitForExit或订阅Exited事件,该事件将在此进程结束时触发。

var process = Process.Start(Environment.CurrentDirectory + @"'Card Downloader.exe"); 
process.Exited += (sender, e) =>
{
    // this will be called when the process exists
};

Process. start()方法返回一个Process对象。将它赋值给一个变量,并调用WaitForExit()。

来源:http://msdn.microsoft.com/en-us/library/fb4aw7b8.aspx

您可以使用Process.Exit事件

var myProcess = new Process();
...
myProcess.Exited += new EventHandler(myProcess_Exited);
myProcess.Start();

您需要订阅流程退出事件,但还要将EnableRaisingEvents标志设置为true。

var process = Process.Start(Environment.CurrentDirectory + @"'Card Downloader.exe");
process.EnableRaisingEvents = true;
process.Exited += (sender, e) =>
{
    ...
};

如果没有设置标志,则只有在用户执行调用HasExited属性期间或之前关闭进程时才会引发该事件。