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

问题描述 投票:0回答:4

c# 我想检测启动的程序是否已关闭。我目前正在使用命令启动它

 Process.Start(Environment.CurrentDirectory + @"\Card Downloader.exe"); 

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

c# process.start
4个回答
7
投票

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
};

3
投票

Process.Start()方法返回一个Process对象。 将其分配给一个变量并调用 WaitForExit() 。

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

Process process = Process.Start("notepad");
process.WaitForExit();

3
投票

您需要订阅进程 Exited 事件,同时还将 EnableRaisingEvents 标志设置为 true。

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

如果未设置该标志,则仅当进程在用户执行对 HasExited 属性的调用期间或之前关闭时才会引发该事件,根据 MSDN


2
投票

您可以使用

Process.Exit
事件

var myProcess = new Process();
...
myProcess.Exited += new EventHandler(myProcess_Exited);
myProcess.Start();
© www.soinside.com 2019 - 2024. All rights reserved.