zoukankan      html  css  js  c++  java
  • C#完美任意设置webBrowser框架默认的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;
            }

    转自:https://blog.csdn.net/ChenLuLiang/article/details/79785809

  • 相关阅读:
    uva 11294 Wedding
    uvalive 4452 The Ministers’ Major Mess
    uvalive 3211 Now Or Later
    uvalive 3713 Astronauts
    uvalive 4288 Cat Vs. Dog
    uvalive 3276 The Great Wall Game
    uva 1411 Ants
    uva 11383 Golden Tiger Claw
    uva 11419 SAM I AM
    uvalive 3415 Guardian Of Decency
  • 原文地址:https://www.cnblogs.com/WeiYongZhi/p/11288847.html
Copyright © 2011-2022 走看看