zoukankan      html  css  js  c++  java
  • c# 设置IE浏览器版本运行程序-设置webBrowser对应的IE内核版本来运行

    //通常情况下,我们直接调用C#的webBrowser控件,默认的浏览器内核是IE7。  那么如何修改控件调用的默认浏览器版本呢?
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Microsoft.Win32; namespace TaoMoban { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); try { int IEversion = GetBrowserVersion(); if (IEversion >= 11) { SetWebBrowserFeatures(11); } else { MessageBox.Show("你的浏览器版本(" + IEversion + ")太低,本程序需要系统安装IE11以上版本浏览器"); } } catch(Exception ex) { MessageBox.Show("" +ex.Message ); } } /// <summary> /// 修改注册表信息来兼容当前程序 /// </summary> static void SetWebBrowserFeatures(int ieVersion) { //获取程序及名称 var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName); //得到浏览器的模式的值 UInt32 ieMode = GeoEmulationModee(ieVersion); var featureControlRegKey = @"HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainFeatureControl"; //设置浏览器对应用程序(appName)以什么模式(ieMode)运行 Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION", appName, ieMode, RegistryValueKind.DWord); //不晓得设置有什么用 Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", appName, 1, RegistryValueKind.DWord); } /// <summary> /// 获取浏览器的版本 /// </summary> /// <returns></returns> static int GetBrowserVersion() { int browserVersion = 0; using (var ieKey = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftInternet 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("不支持的浏览器版本!IE" + browserVersion); } return browserVersion; } /// <summary> /// 通过版本得到浏览器模式的值 /// </summary> /// <param name="browserVersion"></param> /// <returns></returns> static UInt32 GeoEmulationModee(int browserVersion) { UInt32 mode = 11000; // Internet Explorer 11 switch (browserVersion) { case 7: mode = 7000; // Internet Explorer 7 break; case 8: mode = 8000; // Internet Explorer 8 break; case 9: mode = 9000; // Internet Explorer 9 break; case 10: mode = 10000; // Internet Explorer 10. break; case 11: mode = 11000; // Internet Explorer 11 break; } return mode; } } }

      

  • 相关阅读:
    ui、li模拟下拉框
    六项精进
    Echarts柱状图添加点击事件
    [UWP]爱恋动漫BT开发小记
    [杂谈]这个四月
    [uwp]自定义图形裁切控件
    [uwp]自定义Behavior之随意拖动
    [uwp]数据绑定再学习
    [mvc]记一次“项目”的历程
    [uwp]ImageSource和byte[]相互转换
  • 原文地址:https://www.cnblogs.com/wgscd/p/10690530.html
Copyright © 2011-2022 走看看