WebBrowser中修改渲染IE的版本

  在做一个浏览器项目时有个页面始终打开错误,而我电脑上的Chrome IE11 搜狗(总感觉他的兼容模式所采用的不是电脑上的最新IE版本)都能够正常打开页面

    更奇怪的是我做的这个程序在别人电脑上可以打开这个页面

    在排除缓存错误等等一切问题后决定还是回到浏览器版本的确定上,而这个我记得之前我将这个项目的所采用的浏览器版本改过的

而且出错时显示的也是IE11的提示风格,采用WebBrowser.Version这个属性查看时显示的也确实是IE11

    在绝望之际试试JS的代码查看,首先navigator.appName,结果我电脑上的所有浏览器显示的都是NetScape

    又采用navigator.appVersion,这个时候显示除了很多,包括电脑的.NET版本等等,具体说明W3C上有些描述

果然发现问题了,在我的浏览器上这里得到的浏览器版本都是5.0,而我的项目上确实4.0,再次怀疑版本没改过了

    于是又开始google该版本的代码

 

    废话不多说了,代码:

    

   

 void ChangeVersion()
    {
            string appName = "你的程序名";
            string versionCode = 8000 // 具体浏览器版本对应的代码 微软官网上有,这里代表IE8
            //需要给几个地方增加键值
            RegistryKey HKCU = Registry.CurrentUser;
            RegistryKey HKLM = Registry.LocalMachine;

            HKCU.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true).
                SetValue(appName, versionCode, RegistryValueKind.DWord);
            HKLM.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true).
                SetValue(appName, versionCode, RegistryValueKind.DWord);
            // 对64位系统的特殊处理  这里需要.net fw 4.0以上版本,也可以自行采用其他办法进行判断以兼容早起.net fw版本
            if (System.Environment.Is64BitOperatingSystem)
            {
                HKLM.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true).
                 SetValue(appName, versionCode, RegistryValueKind.DWord);
            }
    }

 

    还有个疑问,为什么之前WebBrowser.Version执行的和页面出错时使用的都是IE11,而却执行渲染时采用的又是另一套

    还期待高手解答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值