Question

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.

Was it helpful?

Solution

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top