虽然 googlin 我只有信息如何获取所有进程,存储到 Process[]
中,但我需要的是:
Process proc = new Process();
proc.startInfo.FileName = "notepad.exe";
proc.Start();
下面我创建了一个进程对象,现在我需要知道这个进程是否已关闭,正是这个,因为如果用户关闭并且如果我从代码 proc.Exit();
尝试它会抛出一个异常。
到目前为止,我正在做的事情是这样的:
Process procs = new Process();
Process[] proc = Process.GetProcesses();
foreach (Process p in proc)
{
if (p.Id = procs.Id)
{
//Do Something
break;
}
}
最佳答案
只需使用 HasExited
在您的 Process
对象上:
Process proc = new Process();
proc.startInfo.FileName = "notepad.exe";
proc.Start();
// do something
if(proc.HasExited)
// notepad was closed
或者,如果您希望在进程关闭后立即收到通知,请使用 Exited
事件:
Process proc = new Process();
proc.startInfo.FileName = "notepad.exe";
proc.Exited += ProcessExited;
proc.Start();
private void ProcessExited(object sender, EventArgs e)
{
// notepad was closed
}
关于c# - 如何确定进程对象正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532698/