我正试图用c#打开一个进程,并在它关闭时对它做出反应。这项工作是给我的:
private void StartProc()
{
var process = new System.Diagnostics.Process { StartInfo = { FileName = "PathTo.exe" } };
process.Start();
process.EnableRaisingEvents = true;
process.Exited += this.Editor_Exited;
}
private void Editor_Exited(object sender, EventArgs e)
{
MessageBox.Show("Process canceled");
}
假设我正在用这段代码打开一个文本编辑器。如果已经有此文本编辑器的实例,则代码不会打开第二个实例,并且也会立即跳转到Editor_Exited
代码中。
我希望代码打开一个新的实例,不要跳到Editor_Exited
代码中。
string processName = "PathTo.exe";
var process = new System.Diagnostics.Process { StartInfo = { FileName = processName } };
if (process.Start())
{
process.EnableRaisingEvents = true;
process.Exited += this.Editor_Exited;
}
else
{
var p = Process.GetProcessesByName(processName);
p.WaitForExit();
}
我知道这不是你所要求的100%,但这是围绕的工作