WebBrowser控件将忽略HKCU注册表设置值

Áro*_*ozs 3 registry internet-explorer webbrowser-control

我已经实现了使用WebBrowser控件的应用程序。要应用该IE11模式,我的应用程序设置会设置HKLM注册表值:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApp.exe"=dword:00002AF8
Run Code Online (Sandbox Code Playgroud)

这完美地工作,没有任何问题。

我的应用程序允许用户更改兼容性视图。当用户在我的应用程序的“选项”对话框中设置IE8兼容性时,它将设置以下HKCU注册表值,然后重新启动应用程序:

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApp.exe"=dword:00001F40
Run Code Online (Sandbox Code Playgroud)

现在这是我的问题:HKEY_CURRENT_USER设置对于大多数用户正确地起作用,但是在某些用户中,WebBrowser控件只是忽略HKEY_CURRENT_USER配置单元中的所有设置,而仅采用HKLM(这意味着用户无法进行自定义) 。

有人知道是否有任何IE配置或Bug阻止HKCU配置单元中的设置吗?可以在多台计算机/用户上重现此问题,但不是全部。我尝试用Google搜索此类问题,但没有找到任何准确的解决方案。

注意:我的应用程序未使用IDocHostUIHandler2::GetOverrideKeyPath。环境:Windows 7,IE11 MyApp.exe是x86。

Áro*_*ozs 6

我自己找到的。以下注册表值应设置0为允许HKCU设置:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
"Security_HKLM_only"=dword:00000000
Run Code Online (Sandbox Code Playgroud)

这是位于的组策略设置 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