1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C#完美任意设置webBrowser框架默认的IE内核版本

C#完美任意设置webBrowser框架默认的IE内核版本

时间:2020-12-02 10:31:33

相关推荐

C#完美任意设置webBrowser框架默认的IE内核版本

通常情况下,我们直接调用C#控件webBrowser1控件的时候 默认是IE7 用webBrowser1控件打开IE内核检测网站内容是这样滴

我们在程序里面写入以下代码

/// <summary>

/// 修改注册表信息来兼容当前程序

///

/// </summary>

static void SetWebBrowserFeatures(int ieVersion)

{

// don't change the registry if running in-proc inside Visual Studio

if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)

return;

//获取程序及名称

var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

//得到浏览器的模式的值

UInt32 ieMode = GeoEmulationModee(ieVersion);

var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";

//设置浏览器对应用程序(appName)以什么模式(ieMode)运行

Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",

appName, ieMode, RegistryValueKind.DWord);

// enable the features which are "On" for the full Internet Explorer browser

//不晓得设置有什么用

Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",

appName, 1, RegistryValueKind.DWord);

//Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",

// appName, 1, RegistryValueKind.DWord);

//Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",

// appName, 1, RegistryValueKind.DWord);

//Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",

// appName, 1, RegistryValueKind.DWord);

//Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",

// appName, 0, RegistryValueKind.DWord);

}

/// <summary>

/// 获取浏览器的版本

/// </summary>

/// <returns></returns>

static int GetBrowserVersion()

{

int browserVersion = 0;

using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",

RegistryKeyPermissionCheck.ReadSubTree,

System.Security.AccessControl.RegistryRights.QueryValues))

{

var version = ieKey.GetValue("svcVersion");

if (null == version)

{

version = ieKey.GetValue("Version");

if (null == version)

throw new ApplicationException("Microsoft Internet Explorer is required!");

}

int.TryParse(version.ToString().Split('.')[0], out browserVersion);

}

//如果小于7

if (browserVersion < 7)

{

throw new ApplicationException("不支持的浏览器版本!");

}

return browserVersion;

}

/// <summary>

/// 通过版本得到浏览器模式的值

/// </summary>

/// <param name="browserVersion"></param>

/// <returns></returns>

static UInt32 GeoEmulationModee(int browserVersion)

{

UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode.

switch (browserVersion)

{

case 7:

mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.

break;

case 8:

mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.

break;

case 9:

mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.

break;

case 10:

mode = 10000; // Internet Explorer 10.

break;

case 11:

mode = 11000; // Internet Explorer 11

break;

}

return mode;

}

然后在在如图所示写入 调用

SetWebBrowserFeatures(11);

可以看到 已经设置为IE11的内核了

---------------------

作者:_陈陆亮

来源:CSDN

原文:/ChenLuLiang/article/details/79785809

版权声明:本文为博主原创文章,转载请附上博文链接!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。