使用 Kill 关闭 IE 特定 window 与 C# 不工作

Close IE specific window with C# using Kill is not working

我正在尝试关闭最新的 window/tab IE,但是当我调用 Kill 方法时,window 重新启动时没有页面内容。 这是我用来获取最新 IE 进程的代码:

var a = System.Diagnostics.Process.GetProcessesByName("iexplore");
DateTime earliestStart = DateTime.Today.Subtract(new TimeSpan(1,0,0,0));
System.Diagnostics.Process youngestProccess = a.FirstOrDefault();


                foreach(var b in a){
                    if (b.StartTime > earliestStart)
                    {
                        earliestStart = b.StartTime;
                        youngestProccess = b;
                    }
                }                
                youngestProccess.Kill();

代码的工作方式与最近的 window "stop" 相同,但 window 未关闭

有什么想法吗?

嗨,我刚刚发现如何解决这个问题。

此消息被抛出是因为我的 IE 在“Internet 选项高级”选项卡中选中了 "Enable automatic crash recovery" 选项。

因此,如果您遇到这种情况,您有 2 个选择:永远取消选中该选项(这可能适用于您的情况)或者像我的情况一样,您可以通过注册表项更改选择,并在完成测试后 return要开启的值。

因此,您需要在打开 IE 之前将其添加到您的代码中。

Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Recovery", "AutoRecover", 2);  

要重新启用该选项,您必须执行相同的操作,但使用 0

Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Recovery", "AutoRecover", 0);