我正在运行WPF应用程序(进程A)。从按钮单击开始,我需要启动另一个进程(进程B),这是一个WinForms应用程序。
现在我的问题是,如果我通过单击(X)按钮关闭进程B的窗口,它会突然关闭进程B,然后如何通知此事件信息以处理A?
答案 0 :(得分:1)
如果您使用Process.Start
执行外部应用程序,则可以使用WaitForExit
方法保留光标,直到不退出应用程序。请查看此示例,以了解有关MSDN上的WaitForExit方法的更多信息。
答案 1 :(得分:1)
Process类具有Exited
事件,正是出于此目的。您还必须将EnableRaisingEvents
设置为true
才能使用它:
private void ButtonClick(object sender, RoutedEventArgs e)
{
var process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.EnableRaisingEvents = true;
process.Exited += ProcessExited;
process.Start();
startButton.IsEnabled = false;
}
private void ProcessExited(object sender, EventArgs e)
{
Dispatcher.BeginInvoke(new Action(() => startButton.IsEnabled = true));
}