Повторный запуск процесса не реагирует должным образом - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь открыть процесс с помощью 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 голосов
/ 07 ноября 2018
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% то, что вы просите, а работа вокруг

...