تعیین شماره نگارش IE مورد استفاده در Web Browser Control
نویسنده: وحید نصیری
تاریخ: ۱۳۹۲/۰۳/۰۸ ۱۲:۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
32 bit -> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 64 bit -> HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
Force IE10 -> 10001 (0x2711) IE10 considering !DOCTYPE directives -> 10000 (0x02710) Force IE9 -> 9999 (0x270F) IE9 considering !DOCTYPE directives -> 9000 (0x2328) Force IE8 -> 8888 (0x22B8) IE8 considering !DOCTYPE directives -> 8000 (0x1F40) Force IE7 -> 7000 (0x1B58)
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION] "w3wp.exe"=dword:00001f40
using System;
using System.Diagnostics;
using Microsoft.Win32;
using System.Windows.Forms;
namespace Core
{
public static class UseLatestVersionOfIE
{
/// <summary>
/// Use the latest version of IE in WebBrowser control
/// </summary>
public static void SetWebBrowserVersion()
{
RegistryKey regkey = null;
try
{
regkey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", writable: true);
if (regkey == null)
{
return;
}
var regVal = getInstalledIEVersion();
var appName = string.Format("{0}.exe", Process.GetCurrentProcess().ProcessName);
regkey.SetValue(appName, regVal, RegistryValueKind.DWord);
}
catch (Exception ex)
{
// todo: log ...
}
finally
{
if (regkey != null)
{
regkey.Close();
}
}
}
private static int getInstalledIEVersion()
{
int browserVer;
using (var wb = new WebBrowser())
{
browserVer = wb.Version.Major;
}
int regVal;
if (browserVer >= 11)
regVal = 11001;
else
switch (browserVer)
{
case 10:
regVal = 10001;
break;
case 9:
regVal = 9999;
break;
case 8:
regVal = 8888;
break;
default:
regVal = 7000;
break;
}
return regVal;
}
}
}