重复的流程启动未按预期进行反应

时间:2018-11-07 11:34:20

标签: c# process system.diagnostics

我正在尝试使用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代码中。

1 个答案:

答案 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%,但是可以解决