c#获取和设置默认浏览器的版本号

硅谷探秘者 3016 0 0
        public static string GetDetailVersion(string text)
        {
            //通过WebBrowser方案获取版本号
            //int mainVer = (new WebBrowser()).Version.Major;

            //通过注册表获取用户IE版本号
            RegistryKey mainKey = Registry.LocalMachine;
            RegistryKey subKey = mainKey.OpenSubKey(text);

            var versionNumber = subKey?.GetValue("svcVersion")?.ToString() ?? string.Empty;
            if (string.IsNullOrEmpty(versionNumber))
            {
                versionNumber = subKey?.GetValue("svcUpdateVersion")?.ToString() ?? string.Empty;
                if (string.IsNullOrEmpty(versionNumber))
                {
                    versionNumber = subKey?.GetValue("Version")?.ToString() ?? string.Empty;
                }
            }
            return versionNumber;
        }
        /*******************************/

        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_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
            //设置浏览器对应用程序(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(@"SOFTWARE\Microsoft\Internet 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;
        }

评论区
请写下您的评论...
暂无评论...
猜你喜欢
weblog 1732 java判断请求类型是否是ieimportjavax.servlet.http.HttpServletRequest;/*** 类型判断*@author硅谷探秘者(jia
spring/springmvc 9535 springboot动态@RequestMappingurl请求路径(从配文件中)controller层
setUpVpn 14538 谷歌vpn插件翻墙将下载文件拖到谷歌扩展程序窗口中,即可安装
工具 4065 在下载文件时候不同可能会造成中文乱码,java可以根据类型做出判断packagecom.dzqc.yx.util
keepalived,nginx,linux 1551 大,处理请求优先级越高,主服务值不用改,备用服务值比主服务小就行advert_int1#检查间隔,为1s(vrrp组播周期秒数)authentication{#授权访问
前端(h5) 2066 !DOCTYPEhtmlhtml head metacharset="utf-8" title/title script window.onload=function(){ /*页面打开,判断是否存储过用户名---*/ varuName=window.localStorage.getItem('userName'); varpassword=window.localSt
spring/springmvc 1584 "spring在ioc容aop受理对象",这句话是什么意思呢?有时候我们会在spring项目中对一下类进行代理,比如我们会用springaop自定义注解对一些接口访问添加日志,再比如对
框架 3659 ribbon负载均衡是轮询策略,会进行无差别分配。ribbon有七种负载均衡模式RoundRobinRule:规则,通过简单轮询服务列表来选择服务
归档
2018-11  12 2018-12  33 2019-01  28 2019-02  28 2019-03  32 2019-04  27 2019-05  33 2019-06  6 2019-07  12 2019-08  12 2019-09  21 2019-10  8 2019-11  15 2019-12  25 2020-01  9 2020-02  5 2020-03  16 2020-04  4 2020-06  1 2020-07  7 2020-08  13 2020-09  9 2020-10  5 2020-12  3 2021-01  1 2021-02  5 2021-03  7 2021-04  4 2021-05  4 2021-06  1 2021-07  7 2021-08  2 2021-09  8 2021-10  9 2021-11  16 2021-12  14 2022-01  7 2022-05  1 2022-08  3 2022-09  2 2022-10  2 2022-12  5 2023-01  3 2023-02  1 2023-03  4 2023-04  2 2023-06  3 2023-07  4 2023-08  1 2023-10  1 2024-02  1 2024-03  1 2024-04  1 2024-08  1
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy srs 音视频 webrtc javascript 加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。