webbrowser内核指定

webbrowser内核指定

  1. 手动指定webbrowser内核
    找到注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

在右侧空白区域内单击鼠标右键,点击[新建]→[DWORD(32-位)值],新建的项取名为MyApplication.exe(程序名),编辑值时,选择基数“十进制”,填写数值数据,这里填写11000(IE11)。最后运行MyAplication.exe,此时MyAplication.exe的webbrowser内核已指定为IE11。
不同IE版本所对应的DWORD值:
2. 使用代码指定WebBrowser内核

public class IEVersion
  {
      /// <summary>
      /// IE WebBrowser内核设置
      /// </summary>
      public static void BrowserEmulationSet()
      {
          //当前程序名称
          var exeName = Process.GetCurrentProcess().ProcessName + ".exe";
          //系统注册表信息
          var mreg = Registry.LocalMachine;
          //IE注册表信息
          var ie = mreg.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKeyPermissionCheck.ReadWriteSubTree);
          if (ie != null)
          {
              try
              {
                  var val = ieVersionEmulation(ieVersion());
                  if (val != 0)
                  {
                      ie.SetValue(exeName, val);
                  }
                  mreg.Close();
              }
              catch (Exception ex)
              {
                  Console.Write(ex.Message);
              }
          }
      }
 
      /// <summary>
      /// IE版本号
      /// </summary>
      /// <returns></returns>
      static int ieVersion()
      {
          //IE版本号
          RegistryKey mreg = Registry.LocalMachine;
          mreg = mreg.CreateSubKey("SOFTWARE\\Microsoft\\Internet Explorer");
 
          //更新版本
          var svcVersion = mreg.GetValue("svcVersion");
          if (svcVersion != null)
          {
              mreg.Close();
              var v = svcVersion.ToString().Split('.')[0];
              return int.Parse(v);
          }
          else
          {
              //默认版本
              var ieVersion = mreg.GetValue("Version");
              mreg.Close();
              if (ieVersion != null)
              {
                  var v = ieVersion.ToString().Split('.')[0];
                  return int.Parse(v);
              }
          }
          return 0;
      }
 
      /// <summary>
      /// 根据IE版本号 返回Emulation值
      /// </summary>
      /// <param name="ieVersion"></param>
      /// <returns></returns>
      static int ieVersionEmulation(int ieVersion)
      {
          //IE7 7000 (0x1B58)
          if (ieVersion < 8)
          {
              return 0;
          }
          if (ieVersion == 8)
          {
              return 0x1F40;//8000 (0x1F40)、8888 (0x22B8)
          }
          if (ieVersion == 9)
          {
              return 0x2328;//9000 (0x2328)、9999 (0x270F)
          }
          else if (ieVersion == 10)
          {
              return 0x02710;//10000 (0x02710)、10001 (0x2711)
          }
          else if (ieVersion == 11)
          {
              return 0x2AF8;//11000 (0x2AF8)、11001 (0x2AF9
          }
          return 0;
      }
  }

最后,在程序启动时调用即可:

IEVersion.BrowserEmulationSet();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值