2019-8-31-dotnet-获取用户设备安装了哪些-.NET-Framework-框架
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
dotnet 获取用户设备安装了哪些 .NET Framework 框架
|
lindexi
|
2019-08-31 16:55:58 +0800
|
2019-04-17 15:41:21 +0800
|
dotnet
|
从注册表可以拿到当前用户安装的 .NET Framework 版本,本文告诉大家如何解析这些信息
在注册表的当前设备的 SOFTWARE\Microsoft\NET Framework Setup\NDP\ 可以拿到在设备安装的 .NET Framework 版本
大概从注册表拿到的数据就是这样
v2.0.50727=.NET Framework 2.0 SP2; v3.0=.NET Framework 3.0 SP2; v3.5=.NET Framework 3.5 SP1; v4 Client=.NET Framework 4.5 Client Profile; v4 Full=.NET Framework 4.5;
本文主要告诉大家如何从上面的字符串解析出用户安装了哪些 .NET Framework 版本
各个版本的 .NET Framework 依赖的系统请看.NET Framework Versions and Dependencies
public class UserNetFramework
{
/// <summary>
/// .NET Framework 2.0 SP2
/// </summary>
public bool InstalledNETFramework20SP2 => _list.Contains(NETFramework20SP2); private const string NETFramework20SP2 = ".NET Framework 2.0 SP2"; /// <summary>
/// .NET Framework 3.0 SP2
/// </summary>
public bool InstalledNETFramework30SP2 => _list.Contains(NETFramework30SP2); private const string NETFramework30SP2 = ".NET Framework 3.0 SP2"; /// <summary>
/// .NET Framework 3.5 SP1
/// </summary>
public bool InstalledNETFramework35SP1 => _list.Contains(NETFramework35SP1); private const string NETFramework35SP1 = ".NET Framework 3.5 SP1"; /// <summary>
/// .NET Framework 4 Client Profile
/// </summary>
public bool InstalledNETFramework4CP => _list.Contains(NETFramework4CP); private const string NETFramework4CP = ".NET Framework 4 Client Profile"; /// <summary>
/// .NET Framework 4 Full
/// </summary>
public bool InstalledNETFramework4F => _list.Contains(NETFramework4F); private const string NETFramework4F = ".NET Framework 4 Full"; /// <summary>
/// .NET Framework 4.5 Client Profile
/// </summary>
public bool InstalledNETFramework45CP => _list.Contains(NETFramework45CP); private const string NETFramework45CP = ".NET Framework 4.5 Client Profile"; /// <summary>
/// .NET Framework 4.5
/// </summary>
public bool InstalledNETFramework45 => _list.Contains(NETFramework45); private const string NETFramework45 = ".NET Framework 4.5"; /// <summary>
/// .NET Framework 4.5.1
/// </summary>
public bool InstalledNETFramework451 => _list.Contains(NETFramework451); private const string NETFramework451 = ".NET Framework 4.5.1"; /// <summary>
/// .NET Framework 4.5.2
/// </summary>
public bool InstalledNETFramework452 => _list.Contains(NETFramework452); private const string NETFramework452 = ".NET Framework 4.5.2"; /// <summary>
/// .NET Framework 4.6
/// </summary>
public bool InstalledNETFramework46 => _list.Contains(NETFramework46); private const string NETFramework46 = ".NET Framework 4.6"; /// <summary>
/// .NET Framework 4.6.1
/// </summary>
public bool InstalledNETFramework461 => _list.Contains(NETFramework461); private const string NETFramework461 = ".NET Framework 4.6.1"; /// <summary>
/// .NET Framework 4.7 Client Profile
/// </summary>
public bool InstalledNETFramework47CP => _list.Contains(NETFramework47CP); private const string NETFramework47CP = ".NET Framework 4.7 Client Profile"; /// <summary>
/// .NET Framework 4.7
/// </summary>
public bool InstalledNETFramework47 => _list.Contains(NETFramework47); private const string NETFramework47 = ".NET Framework 4.7"; private readonly HashSet<string> _list = new HashSet<string>(); public static UserNetFramework Parser(string str)
{
var userNetFramework = new UserNetFramework(); foreach (var temp in new[]
{
NETFramework47CP,
NETFramework47,
NETFramework461,
NETFramework46,
NETFramework452,
NETFramework451,
NETFramework45CP,
NETFramework45,
NETFramework4CP,
NETFramework4F,
NETFramework35SP1,
NETFramework30SP2,
NETFramework20SP2,
})
{
if (str.Contains(temp))
{
str = str.Replace(temp, ""); userNetFramework._list.Add(temp);
}
} return userNetFramework;
}
}
2019-8-31-dotnet-获取用户设备安装了哪些-.NET-Framework-框架的更多相关文章
- dotnet 获取用户设备安装了哪些 .NET Framework 框架
从注册表可以拿到当前用户安装的 .NET Framework 版本,本文告诉大家如何解析这些信息 在注册表的当前设备的 SOFTWARE\Microsoft\NET Framework Setup\N ...
- asp dotnet core 从 Frp 获取用户真实 IP 地址
我在本地开一个服务,然后通过 Frp 让小伙伴可以在外网访问我的 API 连接,但是直接通过 RemoteIp 拿到的是本地的地址.本文告诉小伙伴如何通过 Frp 可以拿到用户的真实 IP 地址 我写 ...
- 微信网页授权获取用户基本信息--PHP
现在就说说怎么通过网页授权获取用户基本信息(国家,省,市,昵称)等. 必要条件: 1)公众号认证 2)有网页授权获取用户基本信息的权限接口 注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用 ...
- 微信公众号支付(一):获取用户openId
一.获取apikey,appsecret与商户号 注册公众号.商户号 二.获取用户的OpenId 1.设置[授权回调页面域名] 官方解释:用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回 ...
- 明令禁止下,哪些APP在违规获取用户信息?
2019年4月28日消息 移动互联网时代各大APP大行其道,用户为了更便捷地享受互联网服务,常常需要让渡部分个人信息.在信息获取不透明的情况下,不少APP运营企业出现过度获取乃至违规获取用户信息的情 ...
- 【Go】获取用户真实的ip地址
原文链接:https://blog.thinkeridea.com/201903/go/get_client_ip.html 用户请求到达提供服务的服务器中间有很多的环节,导致服务获取用户真实的 ip ...
- Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...
- PHP版微信第三方实现一键登录及获取用户信息的方法
本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请. 一开始你需要进入微信 ...
- php 实现微信模拟登陆、获取用户列表及群发消息功能示例
本文实例讲述了php实现微信模拟登陆.获取用户列表及群发消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- web网站如何获取用户的地理位置
web网站如何获取用户的地理位置 一.总结 一句话总结:通过gps知道用户的经度和纬度,然后通过经度和纬度在在地图(google或者百度)上面显示位置. 1.html5如何通过gps知道用户的经度和纬 ...
随机推荐
- 第二十一篇:spring怎么做缓存
项目背景:你可能遇情景:1.一个做统计的页面,每次刷新需要调接口做查询 ,是联表查询,查出来的数据还需要做一些计算或者加工,不算页面上的图表插件,刷新一次,延迟个几秒钟才出的来2. 一个统计接口如此 ...
- Python学习之文件操作(二)
CSV文件处理 在Python中处理CSV文件可以使用模块csv.有关csv模块的官方资料看这里. 1 读取csv文件 csv.reader(csvfile, dialect='excel', **f ...
- No converter found for return value of type: class com.alibaba.fastjson.JSON解决办法
默认情况下,springMVC的@ResponseBody返回的是String类型,如果返回其他类型则会报错.使用fastjson的情况下,在springmvc.xml配置里加入: <mvc:a ...
- Making the Grade
Making the Grade 给定长度为n的序列\(\{a_i\}\),求构造长度为n的递增序列\(\{b_i\}\),求\(\sum_{i=1}^n|a_i-b_i|\)最小值,\(1 ≤ N ...
- PostgreSQL:COALESCE函数
COALESCE函数是返回参数中的第一个非null的值,它要求参数中至少有一个是非null的,如果参数都是null会报错. select COALESCE(null,null); //报错 selec ...
- MySQL系列(十二)--如何设计一个关系型数据库(基本思路)
设计一个关系型数据库,也就是设计RDBMS(Relational Database Management System),这个问题考验的是对RDBMS各个模块的划分, 以及对数据库结构的了解.只要讲述 ...
- OpenCASCADE圆与平面求交
OpenCASCADE圆与平面求交 eryar@163.com 在 解析几何求交之圆与二次曲面中分析了OpenCASCADE提供的类IntAna_IntConicQuad可以用来计算圆与二次曲面之间的 ...
- nginx源码分析——数组
ngx_array.h /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_ARRAY_H_INCLU ...
- PAT甲级——A1085 Perfect Sequence
Given a sequence of positive integers and another positive integer p. The sequence is said to be a p ...
- Python网络爬虫之三种数据解析方式 (xpath, 正则, bs4)
引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...