我有一个 64 位 ActiveX 组件,想要在 IE 中运行。
我假设当我运行 64 位 IE 时,选项卡也将是 64 位进程,并且我将能够创建 ActiveX 对象。
但即使在 64 位 IE 中,标签也以 32 位进程运行。有什么方法可以改变这种情况吗?
答案1
我已经在 Windows 7 64 位上验证过,IE11 和 UAC 已打开,并且链接@Ƭᴇcʜιᴇ007 给出的是正确的:进入 IE 菜单“工具”,转到“Internet 选项”,“高级”选项卡,在“安全”下,选中“启用增强保护模式”。在较新版本的 Windows 上,还需要选中“为增强保护模式启用 64 位进程”。对我来说,重新启动 IE 就足够了,尽管文档建议重新启动计算机。
我根本没有安装任何附加组件。文档说 32 位附加组件在 64 位模式下被禁用。另外需要注意的是,这在禁用 UAC 的 Windows 10 中也有效,因此 UAC 在这里似乎并不重要。
这应该可以完成工作,但如果由于某种原因不能完成,还有另一种解决方案,即在注册表中创建
CURRENT_USER\Software\Microsoft\Internet Explorer\Main
一个名为 DWORD(32 位)的条目,TabProcGrowth
其值为零。当此注册表项设置为 0 时,选项卡将与管理器进程在同一个进程中运行,在 64 位操作系统上,该进程始终为 64 位。文档可能找到这里(适用于 IE10,但我已针对 IE11 进行了验证)。重新启动 IE 似乎足以启用或禁用此注册表设置。
答案2
终于找到了适用于 Win7 的解决方案。我需要创建一个启用 UAC 的普通用户(即非管理员)。然后启用增强保护模式,并确保网页加载的区域已启用保护模式。然后我就可以启动 64 位选项卡进程而无需设置 TabProcGrowth。