Reputation: 101
I have implemented an application which uses WebBrowser control. To apply the IE11
mode, my application setup sets the HKLM
registry value:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApp.exe"=dword:00002AF8
This works perfectly without any problem.
My application allows the users to change the compatibility view. When a user sets e.g. IE8 compatibility on my app’s Options dialog, it sets the following HKCU registry value, and restarts the application:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyApp.exe"=dword:00001F40
Now here is my problem: the HKEY_CURRENT_USER
setting works for most of the users correctly, but at some of them the WebBrowser control just ignores all the settings in the HKEY_CURRENT_USER
hive, and just takes the HKLM only (which means no customization is possible by the user).
Does anybody know if there is any IE configuration or bug which prevents the settings in HKCU hive? This issue can be reproduced on multiple computers/users, but not all of them. I tried to google for such issue, but haven’t found any accurate solution.
Note: my application does not use IDocHostUIHandler2::GetOverrideKeyPath
. Environment: Windows 7, IE11, MyApp.exe
is x86.
Upvotes: 3
Views: 3937
Reputation: 101
I found it myself. The following registry value should be set to 0
to allow HKCU
settings:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
"Security_HKLM_only"=dword:00000000
This is a Group Policy setting at Computer Configuration/Administrative Templates/Windows Components/Internet Explorer/"Security Zones: Use only machine settings"
Further info about the IE security registry values: http://support.microsoft.com/KB/833633 http://support.microsoft.com/kb/182569
Upvotes: 7