我需要在 64 位 Windows 7 Enterprise N 上以 32 位模式运行 IE 10。
当我从“C:\Program Files (x86)\Internet Explorer”运行 IE 10 时,我可以在任务管理器中看到只有一个进程“iexplorer.exe”,没有进程“iexplorer.exe *32”。
我有一个带有 ActiveX 的应用程序,它仅在 32 位上受支持,并且该应用程序无法在 64 位模式下加载。
有什么方法可以强制 IE10 以 32 位模式运行?
答案1
发生这种情况的原因是 TabProcGrowth 注册表项设置为 0,这意味着选项卡设置为在与管理器进程相同的进程中运行(64 位),而不是为每个选项卡打开一个新进程(32 位)。您可以通过在此处更改注册表项来修复此问题:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth 或 HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\TabProcGrowth
将其设置为大于 0 的值,重新启动 IE,然后您应该会看到恢复正常行为(并且您的附加组件应该可以再次工作)。更多信息请参见Microsoft 知识库文章。
答案2
你需要阅读了解增强保护模式文章理解Internet Explorer 的进程模型和位数:
在过去的几个版本中,Internet Explorer 一直采用多进程架构,其中“框架“ 或者 ”经理”进程以“中等完整性”运行,“标签“ 或者 ”内容”进程以低完整性(保护模式)或中等完整性(针对禁用保护模式的区域,如 Intranet 站点)运行。所有 HTML 内容和 ActiveX 控件都在内容进程中运行。即使是工具栏,虽然在视觉上看起来像是在管理器进程中,但实际上也是在内容进程中运行的。
对于 IE10,我们对 IE 进行了如下更改:管理流程 总是在运行 64 位版本 Windows 的 64 位处理器上运行时作为 64 位进程运行。... 为了支持此更改,指向 Internet Explorer 的各个注册表点已更新为指向 C:\Program Files\Internet Explorer\iexplore.exe。如果您手动调用 C:\Program Files (x86)\Internet Explorer\iexplore.exe,则该 32 位进程将在退出之前简单地启动 64 位版本的 iexplore.exe(使用适当的命令行参数)。
在桌面上的 Internet Explorer 中,默认情况下,内容流程默认保留为 32 位,以兼容 32 位 ActiveX 控件、工具栏、BHO 等。即使您直接启动 64 位 iexplore.exe 可执行文件,您仍然会有一个仅托管 32 位内容进程的 64 位管理器进程。如果要为桌面启用 64 位内容进程,则必须勾选启用增强保护模式选项位于 Internet Explorer 的安全部分
Tools > Internet Options > Advanced tab
。启用此选项后,所有在保护模式下运行的内容进程(例如,默认情况下的 Internet 区域和限制区域)将开始使用 64 位内容进程。在即将推出的 Windows 7 和 Windows Server 2008R2 上的 Internet Explorer 10 中,仅有的启用增强保护模式的作用是打开 64 位内容进程。
因此,无论我启动的是 32 位还是 64 位 IE10,只要增强保护模式是已禁用,我可以正常加载 32 位 ActiveX 控件或内容进程。这是我在任务管理器在 Win7 x64 上,在 32 位 IE10 中加载 32 位 ActiveX 控件时:
您应该确认该功能Tools / ActiveX Filtering
未打开,如果没有帮助,请检查当前区域的安全设置。
答案3
在之前的 64 位 Windows 版本中,操作系统附带两个版本的 Internet Explorer。一个是常规的 32 位版本,另一个是原生 64 位版本。
64 位 Internet Explorer 的一个持续存在的问题是,为 32 位版本设计的插件与其不兼容,但您可能仍想在 Windows 8 上使用它。
因此,启用该功能的方法如下:
在桌面上打开 Internet Explorer 10,单击窗口右上角的“设置”齿轮,单击“高级”选项卡,向下滚动直到看到“启用增强保护模式*”并勾选旁边的框,单击“确定”,重新启动 Internet Explorer。