linux怎么设置ie内核,C#完美任意设置webBrowser框架默认的IE内核版本

04336d15f8b57e000ed1ff6b77fe34b3.png

32e9169cdc980b0e89488761330f305f.png

通常情况下,我们直接调用C#控件webBrowser1控件的时候 默认是IE7  用webBrowser1控件打开IE内核检测网站内容很多时候是乱的,而且各种提示脚本错误,页面无法正常显示

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

///

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

///

///

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);

}

///

/// 获取浏览器的版本

///

///

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;

}

///

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

///

///

///

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;

}

注意添加 using Microsoft.Win32;

使用方法很简单,在使用浏览器控件之前使用:

private void Form1_Load(object sender, EventArgs e)

{

SetWebBrowserFeatures(11);//11是设置ie版本为11

// webBrowser1.Navigate("http://mybrowse.osfipin.com/");

}

效果就很棒了,希望对你有帮助

我的微信:graent_hu

欢迎扫码加我的微信好友,有什么问题我们可以一起探讨,有什么需要也随时欢迎发消息给我~

转载请注明出处:

本文链接:https://www.wlyc.cn/post-150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值