要实现设置webBrowser框架默认的IE内核版本的功能需要三个方法

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

  1. /// <summary>
  2. /// 修改注册表信息来兼容当前程序
  3. ///
  4. /// </summary>
  5. static void SetWebBrowserFeatures(int ieVersion)
  6. {
  7. // don't change the registry if running in-proc inside Visual Studio
  8. if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
  9. return;
  10. //获取程序及名称
  11. var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
  12. //得到浏览器的模式的值
  13. UInt32 ieMode = GeoEmulationModee(ieVersion);
  14. var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
  15. //设置浏览器对应用程序(appName)以什么模式(ieMode)运行
  16. Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
  17. appName, ieMode, RegistryValueKind.DWord);
  18. // enable the features which are "On" for the full Internet Explorer browser
  19. //不晓得设置有什么用
  20. Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
  21. appName, , RegistryValueKind.DWord);
  22.  
  23. //Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
  24. // appName, 1, RegistryValueKind.DWord);
  25.  
  26. //Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
  27. // appName, 1, RegistryValueKind.DWord);
  28.  
  29. //Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
  30. // appName, 1, RegistryValueKind.DWord);
  31.  
  32. //Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
  33. // appName, 0, RegistryValueKind.DWord);
  34. }

2.获取浏览器的版本

  1. /// <summary>
  2. /// 获取浏览器的版本
  3. /// </summary>
  4. /// <returns></returns>
  5. static int GetBrowserVersion()
  6. {
  7. int browserVersion = ;
  8. using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer",
  9. RegistryKeyPermissionCheck.ReadSubTree,
  10. System.Security.AccessControl.RegistryRights.QueryValues))
  11. {
  12. var version = ieKey.GetValue("svcVersion");
  13. if (null == version)
  14. {
  15. version = ieKey.GetValue("Version");
  16. if (null == version)
  17. throw new ApplicationException("Microsoft Internet Explorer is required!");
  18. }
  19. int.TryParse(version.ToString().Split('.')[], out browserVersion);
  20. }
  21. //如果小于7
  22. if (browserVersion < )
  23. {
  24. throw new ApplicationException("不支持的浏览器版本!");
  25. }
  26. return browserVersion;
  27. }
  28. /// <summary>
  29. /// 通过版本得到浏览器模式的值
  30. /// </summary>
  31. /// <param name="browserVersion"></param>
  32. /// <returns></returns>

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

  1. /// <summary>
  2. /// 通过版本得到浏览器模式的值
  3. /// </summary>
  4. /// <param name="browserVersion"></param>
  5. /// <returns></returns>
  6. static UInt32 GeoEmulationModee(int browserVersion)
  7. {
  8. UInt32 mode = ; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode.
  9. switch (browserVersion)
  10. {
  11. case :
  12. mode = ; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
  13. break;
  14. case :
  15. mode = ; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
  16. break;
  17. case :
  18. mode = ; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
  19. break;
  20. case :
  21. mode = ; // Internet Explorer 10.
  22. break;
  23. case :
  24. mode = ; // Internet Explorer 11
  25. break;
  26. }
  27. return mode;
  28. }

调用方式:在form窗体的构造函数中

  1.     public Form1()
  2. {
  3. SetWebBrowserFeatures();
  4. InitializeComponent();
  5. }

接下来设置webBrowser的Url即可

  1. webBrowser1.Url = new Uri("你要用的网站");

winfrom设置webBrowser框架默认的IE内核版本的更多相关文章

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

    通常情况下,我们直接调用C#控件webBrowser1控件的时候 默认是IE7  用webBrowser1控件打开IE内核检测网站内容是这样滴 我们在程序里面写入以下代码 /// <summar ...

  2. C#:设置webBrowser框架与系统相对应的IE内核版本

    通常情况下,我们直接调用C#的webBrowser控件,默认的浏览器内核是IE7.  那么如何修改控件调用的默认浏览器版本呢? /// <summary> /// 修改注册表信息来兼容当前 ...

  3. C# 指定Webbrowser控件所用IE内核版本

    如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe,以64位机 ...

  4. PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)

    如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...

  5. .net 设置webbrowser控件使用的IE版本

    当我们在使用.net的Webbrowser控件时,发现webbrowser展示的内容和我们用浏览器展示的内容不一致,甚至出现:'JSON' is undefined. 原因是webbrowser使用的 ...

  6. Winfrom 中完美设置webbrowser控件内核版本

    前言 .NET 版本更新了一代又一代,winform中的webbrowser控件的IE内核版本却始终用的IE7,好多网站都对IE7已经不支持.webbrowser这个控件就显得有些鸡肋,经过查找大佬门 ...

  7. 调整Winfrom控件WebBrowser的默认浏览器内核版本

    一.问题解析: 今天在调试程序的时候,需要使用C#的客户端远程登录一个Web页面,用到了WebBrowser控件.但是却发现了一件很神奇的事情:当前浏览器使用的内核,可以通过访问下面这个网站获取:ht ...

  8. C#设置WebBrowser IE浏览器版本

    通过修改注册表的值,来指定winform程序打开的webBrowser的IE版本 1>方法一,通过程序修改注册表的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  9. C#设置WebBrowser默认浏览器

    由于VS的WebBrowser控件的默认浏览器是IE7,好多网页兼容性不是很好,所以要修改下默认浏览器. 设置前: 设置后:    在WebBrowser界面加载时执行以下方法,设置浏览器. /// ...

随机推荐

  1. OK。第一个shell script 脚本

    很简单吧.也很容易理解.读取两个字符放到变量firstname和lastname中,然后输出 编辑日期格式 上面是编辑日期格式.下面的例题是按照日期格式来分类创建文件

  2. git的一些简单用法

    1.工作区暂存区和仓库区 工作区 对于添加.修改.删除文件的操作,都发生在工作区中 暂存区 暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分 仓库区 仓库区表示个人开发的一个小阶段的完成 仓 ...

  3. 分布式消息中间件(二)ActiveMQ

    一.概述 Apache出品,最流行的,能力强劲的开源消息总线. 1.JMS规范 Java消息服务(Java Message Service,即JMS)应用程序接口是一个Java平台中关于面向消息中间件 ...

  4. 【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 ...

  5. C#中的类型相等与恒等(Equality & Identity)

    l  Equality:如果两个对象是相同的类型,并且它们各自带有相同和等值的属性.(They are instances of the same type and if each of the fi ...

  6. noip历年试题

      noip2018 铺设道路 货币系统 赛道修建 一眼贪心.随便实现. 旅行 环套树枚举删除环上哪条边. 填数游戏 找规律,这谁会啊. 保卫王国 动态Dp,去问这位神仙.   noip2017 小凯 ...

  7. 73 QT编程入门

    0 引言 最近开始在QT下编程,记录一下遇到的问题以及解决方法. 1 安装下载及学习资料 (1)安装下载链接 安装链接: https://blog.csdn.net/qq_23473839/artic ...

  8. Windows注册表的学习

    什么是注册表 注册表是Windows在Win95/98系统开始引入的一种核心数据库,里面存放着各类的配置信息.参数等.直接控制着系统的启动.硬件的装载以及Winodws程序的运行 手册表的功能 记录用 ...

  9. git回退单个文件

    git原理 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD. gi ...

  10. (53)C# 工具

    https://docs.microsoft.com/zh-cn/dotnet/framework/tools/ildasm-exe-il-disassembler 一.Visual Studio的开 ...