Process.Kill()问题

我有以下几行代码:

Process aProcess = Process.Start("ieexplorer", aDummyHTMLFilePath); //I do nothing in between aProcess.Kill(); 

如果没有其他IE窗口打开,这将顺利运行。

但是如果有一个窗口打开,我在aProcess.Kill();上得到一个System.InvalidOperationException aProcess.Kill(); 说:

无法处理请求,因为该进程已退出。

另外,我注意到在这种情况下, aProcess.HasExited在上面的代码中的第1行之后是正确的。

即使有其他IE窗口打开,我怎样才能顺利关闭IE?

当您启动Internet Explorer的新实例时,它将尝试查看Internet Explorer是否已在运行。 如果确实如此,则在已运行的实例中打开URL,并立即退出新实例。 这意味着当你试图杀死你开始的过程时,它已经自愿退出了。 但是,您将在屏幕上看到一个新的浏览器窗口或选项卡,但由现有的Internet Explorer进程托管。

我没有遇到和你一样的问题

如果进程仍在运行,我发现以下情况有效

  Process p = Process.Start("notepad.exe", ""); Thread.Sleep(5000); if (!p.HasExited) p.Kill(); 

它只是抱怨窗户已经关闭。 因此检查