winfrom设置webBrowser框架默认的IE内核版本
要实现设置webBrowser框架默认的IE内核版本的功能需要三个方法
1:修改注册表信息来兼容当前程序
- /// <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, , 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);
- }
2.获取浏览器的版本
- /// <summary>
- /// 获取浏览器的版本
- /// </summary>
- /// <returns></returns>
- static int GetBrowserVersion()
- {
- int browserVersion = ;
- 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('.')[], out browserVersion);
- }
- //如果小于7
- if (browserVersion < )
- {
- throw new ApplicationException("不支持的浏览器版本!");
- }
- return browserVersion;
- }
- /// <summary>
- /// 通过版本得到浏览器模式的值
- /// </summary>
- /// <param name="browserVersion"></param>
- /// <returns></returns>
3.通过版本得到浏览器模式的值
- /// <summary>
- /// 通过版本得到浏览器模式的值
- /// </summary>
- /// <param name="browserVersion"></param>
- /// <returns></returns>
- static UInt32 GeoEmulationModee(int browserVersion)
- {
- UInt32 mode = ; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode.
- switch (browserVersion)
- {
- case :
- mode = ; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
- break;
- case :
- mode = ; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
- break;
- case :
- mode = ; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
- break;
- case :
- mode = ; // Internet Explorer 10.
- break;
- case :
- mode = ; // Internet Explorer 11
- break;
- }
- return mode;
- }
调用方式:在form窗体的构造函数中
- public Form1()
- {
- SetWebBrowserFeatures();
- InitializeComponent();
- }
接下来设置webBrowser的Url即可
- webBrowser1.Url = new Uri("你要用的网站");
winfrom设置webBrowser框架默认的IE内核版本的更多相关文章
- C#完美任意设置webBrowser框架默认的IE内核版本
通常情况下,我们直接调用C#控件webBrowser1控件的时候 默认是IE7 用webBrowser1控件打开IE内核检测网站内容是这样滴 我们在程序里面写入以下代码 /// <summar ...
- C#:设置webBrowser框架与系统相对应的IE内核版本
通常情况下,我们直接调用C#的webBrowser控件,默认的浏览器内核是IE7. 那么如何修改控件调用的默认浏览器版本呢? /// <summary> /// 修改注册表信息来兼容当前 ...
- C# 指定Webbrowser控件所用IE内核版本
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe,以64位机 ...
- PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...
- .net 设置webbrowser控件使用的IE版本
当我们在使用.net的Webbrowser控件时,发现webbrowser展示的内容和我们用浏览器展示的内容不一致,甚至出现:'JSON' is undefined. 原因是webbrowser使用的 ...
- Winfrom 中完美设置webbrowser控件内核版本
前言 .NET 版本更新了一代又一代,winform中的webbrowser控件的IE内核版本却始终用的IE7,好多网站都对IE7已经不支持.webbrowser这个控件就显得有些鸡肋,经过查找大佬门 ...
- 调整Winfrom控件WebBrowser的默认浏览器内核版本
一.问题解析: 今天在调试程序的时候,需要使用C#的客户端远程登录一个Web页面,用到了WebBrowser控件.但是却发现了一件很神奇的事情:当前浏览器使用的内核,可以通过访问下面这个网站获取:ht ...
- C#设置WebBrowser IE浏览器版本
通过修改注册表的值,来指定winform程序打开的webBrowser的IE版本 1>方法一,通过程序修改注册表的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- C#设置WebBrowser默认浏览器
由于VS的WebBrowser控件的默认浏览器是IE7,好多网页兼容性不是很好,所以要修改下默认浏览器. 设置前: 设置后: 在WebBrowser界面加载时执行以下方法,设置浏览器. /// ...
随机推荐
- OK。第一个shell script 脚本
很简单吧.也很容易理解.读取两个字符放到变量firstname和lastname中,然后输出 编辑日期格式 上面是编辑日期格式.下面的例题是按照日期格式来分类创建文件
- git的一些简单用法
1.工作区暂存区和仓库区 工作区 对于添加.修改.删除文件的操作,都发生在工作区中 暂存区 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分 仓库区 仓库区表示个人开发的一个小阶段的完成 仓 ...
- 分布式消息中间件(二)ActiveMQ
一.概述 Apache出品,最流行的,能力强劲的开源消息总线. 1.JMS规范 Java消息服务(Java Message Service,即JMS)应用程序接口是一个Java平台中关于面向消息中间件 ...
- 【leetcode】951. Flip Equivalent Binary Trees
题目如下: For a binary tree T, we can define a flip operation as follows: choose any node, and swap the ...
- C#中的类型相等与恒等(Equality & Identity)
l Equality:如果两个对象是相同的类型,并且它们各自带有相同和等值的属性.(They are instances of the same type and if each of the fi ...
- noip历年试题
noip2018 铺设道路 货币系统 赛道修建 一眼贪心.随便实现. 旅行 环套树枚举删除环上哪条边. 填数游戏 找规律,这谁会啊. 保卫王国 动态Dp,去问这位神仙. noip2017 小凯 ...
- 73 QT编程入门
0 引言 最近开始在QT下编程,记录一下遇到的问题以及解决方法. 1 安装下载及学习资料 (1)安装下载链接 安装链接: https://blog.csdn.net/qq_23473839/artic ...
- Windows注册表的学习
什么是注册表 注册表是Windows在Win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息.参数等.直接控制着系统的启动.硬件的装载以及Winodws程序的运行 手册表的功能 记录用 ...
- git回退单个文件
git原理 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. gi ...
- (53)C# 工具
https://docs.microsoft.com/zh-cn/dotnet/framework/tools/ildasm-exe-il-disassembler 一.Visual Studio的开 ...