3

我有以下代码行:

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

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

但是如果有一扇窗户打开,我会System.InvalidOperationExceptionaProcess.Kill();

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

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

即使有其他IE窗口打开,如何才能顺利关闭IE?

4

2 回答 2

4

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

于 2012-08-13T08:59:55.273 回答
0

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

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

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

如果窗口已关闭,它只会抱怨。因此检查

于 2012-08-13T08:56:19.770 回答