c#获取和设置默认浏览器的版本号
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
1768
java判断请求的浏览器类型是否是ie浏览器importjavax.servlet.http.HttpServletRequest;/*** 浏览器类型判断*@author硅谷探秘者(jia
spring/springmvc
9650
springboot动态设置@RequestMapping的url请求路径(从配置文件中获取或默认)controller层
file
谷歌浏览器vpn插件 翻墙
setUpVpn
14538
谷歌浏览器vpn插件翻墙将下载的文件拖到谷歌浏览器的扩展程序窗口中,即可安装
blog
javaweb请求判断浏览器类型
工具
4104
在下载文件的时候不同的浏览器可能会造成中文乱码,java可以根据浏览器的类型做出判断packagecom.dzqc.yx.util
keepalived,nginx,linux
1600
大,获取处理请求的优先级越高,主服务值不用改,备用服务的值比主服务小就行advert_int1#检查间隔,默认为1s(vrrp组播周期秒数)authentication{#授权访问
blog
web浏览器利用本地储存记住用户名
前端(h5)
2095
!DOCTYPEhtmlhtml head metacharset="utf-8" title/title script window.onload=function(){ /*页面打开,判断是否存储过用户名---*/ varuName=window.localStorage.getItem('userName'); varpassword=window.localSt
spring/springmvc
1630
"spring在ioc容器中获取aop的受理对象",这句话是什么意思呢?有时候我们会在spring项目中对一下类进行代理,比如我们会用spring的aop和自定义注解对一些接口访问添加日志,再比如对
框架
3700
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
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。