首页 文章

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

提问于
浏览
2

我已经实现了一个使用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 回答

  • 4

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

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
    "Security_HKLM_only"=dword:00000000
    

    这是 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

相关问题