【发布时间】:2015-12-25 21:40:53
【问题描述】:
我需要从 C++ 代码中获取并设置在 IE10 及更高版本中启用的“增强保护模式”选项。 我搜索了很多,但所有解决方案都只描述了如何手动执行此操作,而不是从代码中执行此操作,但我需要在 IE 插件的安装程序中执行此操作。
通过注册表、WMI 或控制台命令解决此问题的任何其他解决方案也非常有趣。
有人可以帮忙解决这个问题吗?
【问题讨论】:
标签: internet-explorer internet-explorer-10
我需要从 C++ 代码中获取并设置在 IE10 及更高版本中启用的“增强保护模式”选项。 我搜索了很多,但所有解决方案都只描述了如何手动执行此操作,而不是从代码中执行此操作,但我需要在 IE 插件的安装程序中执行此操作。
通过注册表、WMI 或控制台命令解决此问题的任何其他解决方案也非常有趣。
有人可以帮忙解决这个问题吗?
【问题讨论】:
标签: internet-explorer internet-explorer-10
警告:这不是受支持的行为,这样做可能会使您的代码被 AV 产品或 Microsoft 的 SmartScreen 标记为恶意软件。
Internet 控制面板中的“启用增强保护模式”复选框由注册表项下的 Isolation 值控制:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main。如果应该使用 AppContainers (EPM),它包含值 PMEM,或者如果应该使用非 EPM 完整性级别 (IL)(IE10 的默认值),它包含值 PMIL。没有 API 可以设置此值,因为不支持这样做。
保护模式本身在每个区域的基础上启用或禁用; URLMon API SetZoneActionPolicy 用于调整区域的设置(用于URLAction_LOWRIGHTS)以启用或禁用该区域的保护模式。
【讨论】:
Isolation 的值具有您所描述的 PMEM 或 PMIL。至少我可以检查这个值并提供给用户在需要时手动更改它。
Isolation 键不再存在。
从 8.0 更新到 8.1 并且没有“隔离”键值名称。但是启用了“启用增强保护模式”。看起来如果“隔离”值名称不存在,它与将值设置为 PMEM 具有相同的效果。键值在您取消选中“启用增强保护模式”时创建,并在您每次切换设置时更新。
【讨论】: