我正在尝试使用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
代码中。
答案 0 :(得分:0)
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%,但是可以解决