我已经实现了一个使用WebBrowser控件的应用程序 . 要应用 IE11
模式,我的应用程序设置将设置 HKLM
注册表值:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApp.exe"=dword:00002AF8
这完美没有任何问题 .
我的应用程序允许用户更改兼容性视图 . 当用户设置例如我的应用程序的“选项”对话框中的IE8兼容性,它设置以下HKCU注册表值,并重新启动应用程序:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApp.exe"=dword:00001F40
现在这是我的问题: HKEY_CURRENT_USER
设置适用于大多数用户,但在其中一些WebBrowser控件只是忽略 HKEY_CURRENT_USER
配置单元中的所有设置,并且只接受HKLM(这意味着不能进行自定义)用户) .
有没有人知道是否有任何IE配置或错误阻止HKCU配置单元中的设置?此问题可以在多台计算机/用户上重现,但不是全部 . 我试图谷歌这样的问题,但没有找到任何准确的解决方案 .
注意:我的应用程序不使用 IDocHostUIHandler2::GetOverrideKeyPath
. 环境:Windows 7,IE11, MyApp.exe
是x86 .
1 回答
我自己找到了 . 以下注册表值应设置为
0
以允许HKCU
设置:这是
Computer Configuration/Administrative Templates/Windows Components/Internet Explorer/"Security Zones: Use only machine settings"
的组策略设置有关IE安全性注册表值的详细信息:http://support.microsoft.com/KB/833633 http://support.microsoft.com/kb/182569