So if we add a WebBrowser control to a WinForm then it emulates Internet Explorer, but which version, the answer is its configurable. Here is a good link for the Browser Emulation setting and on the same page are other settings. It is configurable in the registry by writing the name of your executable/assembly as the value name.
If you perhaps might change the name of your executable then you'd might like some code to write the code automatically, here is it. So it uses Reflection to get the executable name and then writes to Registry to say use IE11 for WebBrowser control instances.
// Make WebBrowser control emulate IE11
RegistryKey keyIeFeatureControl = Registry.LocalMachine.OpenSubKey(
@"Software\Microsoft\Internet Explorer\Main\FeatureControl");
RegistryKey keyIeFeatureBrowserEmulation = keyIeFeatureControl.
OpenSubKey("FEATURE_BROWSER_EMULATION", true);
string exeName=Assembly.GetExecutingAssembly().GetName().Name;
keyIeFeatureBrowserEmulation.SetValue(
exeName, 69632); //69532=&h11000
keyIeFeatureBrowserEmulation.Close();
keyIeFeatureControl.Close();
Your code will need admin rights or some sort of elevated privileges to run this code otherwise you will get a security exception.
No comments:
Post a Comment