我的Windows MFC应用程序具有托管Web应用程序的嵌入式WebBrowser控件,当用户单击通过javascript window.open()调用显示弹出窗口的链接时,会导致iexplorer.exe启动以显示弹出窗口。
当关闭此弹出窗口iexplore.exe关闭时,如果用户单击该链接再次启动弹出窗口,则关闭需要很长时间,会显示一个javascript错误:
“已经安排了系统关闭”, - 我认为这是与关闭相关的通用COM错误消息。
在我的测试中,我观察到Internet Explorer 11进程iexplore.exe最多需要15秒才能退出。相比之下,Internet Explorer 8几乎立即退出。
通过启动Internet Explorer 11并打开taskmgr.exe以查看启动的两个iexplore.exe进程,可以轻松验证这一点。一个是64位主机进程,另一个是托管选项卡内容的32位进程。当Internet Explorer窗口关闭时,32位进程立即退出,但64位主机进程会持续几秒钟。
如果iexplore.exe正在关闭,则只会出现此错误。如果出现以下情况,则不会发生:
有没有人有任何想法?
答案 0 :(得分:1)
这两个注册表项:
[HKLM\Software\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
[HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FrameShutdownDelay]
值为DWORD 1的似乎阻止32位制表符进程退出1分钟,此时64位帧主机进程也退出 - 这解决了我们的问题。
但是,这个密钥没有记录,我只是通过在iexplore.exe进程上运行procmon.exe来发现它。
我很感激对此密钥的目的和用途的任何解释。