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


    通常情况下,我们直接调用C#控件webBrowser1控件的时候 默认是IE7  用webBrowser1控件打开IE内核检测网站内容是这样滴

    我们在程序里面写入以下代码

    /// <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_USERSoftwareMicrosoftInternet ExplorerMainFeatureControl";
    //设置浏览器对应用程序(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, 1, 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);
    }
    /// <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("不支持的浏览器版本!");
    }
    return browserVersion;
    }
    /// <summary>
    /// 通过版本得到浏览器模式的值
    /// </summary>
    /// <param name="browserVersion"></param>
    /// <returns></returns>
    static UInt32 GeoEmulationModee(int browserVersion)
    {
    UInt32 mode = 11000; // Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE11 Standards mode.
    switch (browserVersion)
    {
    case 7:
    mode = 7000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
    break;
    case 8:
    mode = 8000; // Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
    break;
    case 9:
    mode = 9000; // Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
    break;
    case 10:
    mode = 10000; // Internet Explorer 10.
    break;
    case 11:
    mode = 11000; // Internet Explorer 11
    break;
    }
    return mode;
    }

    然后在在如图所示写入 调用

       SetWebBrowserFeatures(11);

    可以看到 已经设置为IE11的内核了  


    ---------------------
    作者:_陈陆亮
    来源:CSDN
    原文:https://blog.csdn.net/ChenLuLiang/article/details/79785809
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    api接口安全
    php读取大文件
    thinkphp5.0的工作流程
    php扩展包索引
    redis学习之持久化与内存淘汰机制
    mysql优化之分区
    简练软考知识点整理-控制干系人参与
    简练软考知识点整理-控制干系人参与
    简练软考知识点整理-管理干系人参与
    简练软考知识点整理-管理干系人参与
  • 原文地址:https://www.cnblogs.com/soundcode/p/10254119.html
Copyright © 2020-2023  润新知