首页 > 编程语言 >c# 不通过注册表,检测系统安装的.net版本

c# 不通过注册表,检测系统安装的.net版本

时间:2023-08-11 17:33:41浏览次数:36  
标签:return string c# Framework Combine 注册表 Path net


/// <summary> /// 检测是否安裝4.7.2以上版本 /// </summary> /// <returns></returns> bool CheckNet472() { //C:\Windows\Microsoft.NET\Framework string net = "Microsoft.NET"; string mscorlibFile = "mscorlib.dll"; string RuntimeDirectory = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(); int index = RuntimeDirectory.IndexOf(net); if (index == -1) { MessageBox.Show(RuntimeDirectory, "錯誤,找不到系统路径"); return false; } string NetDirectory = RuntimeDirectory.Substring(0, index + net.Length); string Framework = Path.Combine(Path.Combine(NetDirectory, Path.Combine("Framework", "v4.0.30319")), mscorlibFile); string Framework64 = Path.Combine(Path.Combine(NetDirectory, Path.Combine("Framework64", "v4.0.30319")), mscorlibFile); int Nub = 0; if (File.Exists(Framework)) { Nub = GetFileVersion(Framework); } else if (File.Exists(Framework64)) { Nub = GetFileVersion(Framework64); } if (Nub > 471) { return true; } else { return false; } } int GetFileVersion(string FilePath) { FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(FilePath); string Version = fileVersionInfo.ProductVersion; string res = new string(Version.Where(char.IsDigit).ToArray()); if (res.Length > 1) { int NubCode = Convert.ToInt32(res.Substring(0, 3)); return NubCode; } return 0; }

标签:return,string,c#,Framework,Combine,注册表,Path,net
From: https://www.cnblogs.com/edukong/p/17623574.html

相关文章

  • C语言里.和->的区别
    ->使用一个指向结构体或对象的指针访问其内成员.是直接通过结构体或对象来访问他们的内部成员变量 早期的C语言不支持将结构体作为参数在函数之间传递,只能用指向结构的指针在函数间进行传递  a->b的含义是(*a).b,所以他们是不同的,不过的确->可以用*和.实......
  • tkinter Canvas加滑动条为什么变灰没用
    因为还要设置Canvas的滑动范围:通过canvas的对象方法scrollregion设置如,设置为全部,则为canvas1.configure(scrollregion=c.bbox("all")) 示例代码(ChatGPT写的):fromtkinterimport*defon_canvas_configure(event):canvas.configure(scrollregion=canvas.bbox("all"......
  • 文心一言 VS 讯飞星火 VS chatgpt (74)-- 算法导论7.2 2题
    二、如果用go语言,当数组A的所有元素都具有相同值时,QUICKSORT的时间复杂度是什么?文心一言:在Go语言中,对一个所有元素都相等的数组进行快速排序(QuickSort)的时间复杂度是O(nlogn)。快速排序是一种分而治之的排序算法,它将一个数组分成两个子数组,然后对这两个子数组进行递归排序。......
  • docker-安装Jenkins
    确保Docker已经安装:在终端中运行以下命令来检查Docker是否已经正确安装:docker--version如果你看到了Docker的版本信息,那么说明已经正确安装。创建一个Jenkins数据目录:在终端中创建一个目录来保存Jenkins数据,例如:mkdirjenkins_home这个目录将用于在容器......
  • Nginx中的rewrite指令(break,last,redirect,permanent)
    rewite在server块下,会优先执行rewrite部分,然后才会去匹配location块server中的rewritebreak和last没什么区别,都会去匹配location,所以没必要用last再发起新的请求,可以留空location中的rewirte:不写last和break-那么流程就是依次执行这些rewrite1.rewritebreak-url重写后,直......
  • Github编辑TOC目录
    任意1-6个#标注的标题都会被添加上同名的锚点链接 [标题1](#标题1) [标题2](#标题2) [标题3](#标题3) #标题1 ##标题2 ###标题3锚点跳转的标识名称,可使用任意字符,大写字母要转换成小写 [Github标题1](#github标题1) ###Github标题1多单词锚点的空格用-......
  • [3d object detection] BEVFormer
    paper:BEVFormer:LearningBird's-Eye-ViewRepresentationfromMulti-CameraImagesviaSpatiotemporalTransformers,20221.Grid-shapedBEVqueriesWepredefineagroupofgrid-shapedlearnableparametersQ∈RH×W×CasthequeriesofBEVFormer,where......
  • README_network
    目录1、功能2、环境3、配置blog_url:blog_id:username:password4、运行5、添加快捷方式设置「右键→→发送到」的功能注意:Typora偏好设置——》图像设置1、功能一键拖拽上传默认“未发布”,可选择直接发布重复上传,提示是否更新博客2、环境(1)Python3安装pyyaml库:cmd中......
  • switch
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){ intn; cin>>n; chara[n]; intb; for(inti=0;i<n;i++){ cin>>a[i]; if(a[i]<=57&&a[i]>=48){ b=0; }else{ b=1; } switch(b){ c......
  • SharedPreferences
    SharedPreferences简介在Android开发过程中,有时候我们需要保存一些简单的软件配置等简单数据的信息,而如果我们直接用数据库存储的话又不太方便,在这里我们就可以用到SharedPreferences,SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此保存的数据主要是简单类型的......