如何检测是否安装了.NET 2.0和.NET 3.0
这段代码是通过检查注册表中的项来确定.NET 2.0/3.0是否安装的。由于Paint.NET是由微软员工参与开发的,可以认为这是比较准确的判断方法。大家借鉴一下检测方法就可以了,不用太在意实现,在C++中这种检测方法同样可以实现。
{
const string regKeyNameFormat = "Software\\Microsoft\\NET Framework Setup\\NDP\\v{0}.{1}.{2}";
const string regValueName = "Install";
string regKeyName = string.Format(regKeyNameFormat, major.ToString(CultureInfo.InvariantCulture),
minor.ToString(CultureInfo.InvariantCulture), build.ToString(CultureInfo.InvariantCulture));
return CheckForRegValueEquals1(regValueName, regKeyName);
}
private static bool IsDotNet3VersionInstalled(int major, int minor, int build)
{
bool result = false;
const string regValueName = "InstallSuccess";
if (!result)
{
const string regKeyNameFormat = "Software\\Microsoft\\NET Framework Setup\\NDP\\v{0}.{1}\\Setup";
string regKeyName = string.Format(regKeyNameFormat, major, minor);
result |= CheckForRegValueEquals1(regKeyName, regValueName);
}
if (!result)
{
// There seems to be a bug in x64 .NET 3.0 where it only records its success in the 32-bit section of the registry.
const string regKeyNameFormat2 = "Software\\Wow6432Node\\Microsoft\\NET Framework Setup\\NDP\\v{0}.{1}\\Setup";
string regKeyName2 = string.Format(regKeyNameFormat2, major, minor);
result |= CheckForRegValueEquals1(regKeyName2, regValueName);
}
return result;
}
private static bool CheckForRegValueEquals1(string regKeyName, string regValueName)
{
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(regKeyName, false))
{
object value = null;
if (key != null)
{
value = key.GetValue(regValueName);
}
return (value != null && value is int && (int)value == 1);
}
}
转载于:https://www.cnblogs.com/tonyqus/archive/2007/10/07/916165.html
如何检测是否安装了.NET 2.0和.NET 3.0相关推荐
- 为XNA制做安装程序(四)WIX Toolset 3.0 for Visual Studio 2008
首先到http://wix.sourceforge.net/下载最新的WIX,这是一款开源的安装程序打包工具,其中2.0版本和3.0是可以安装在VS2008下,而3.5安装在VS2010中.我们用VS ...
- PaddlePaddle飞桨OCR文本检测——入门安装GPU版(一)
首先放上github上的开源代码网址,里面的帮助文档说的非常详细: https://github.com/PaddlePaddle/PaddleOCR/ 环境安装 python中环境使用pip安装: ...
- Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0
Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0 前言 安装python3.7.7与环境变量设置 使用pip3安装tensorflow-gpu 2.2.0 测 ...
- ubuntu22.04 安装、DataGrip远程连接、卸载 MySQL8.0.33
安装 1.更新系统 > sudo apt update > sudo apt upgrade 2.使用apt安装MySQL8.0.33 使用该方式安装MySQL时,会自动安装最新版本,并且 ...
- NSIS检测已安装并卸载旧版本和静默安装.msu文件
NSIS检测已安装并卸载旧版本: Function .onInit !insertmacro TIP_WHEN_AMD64_INSTALLER_RUNAT_X86 ;安装到所有用户下,cu ...
- android应用宝检测是否安装,android 检测手机是否安装了应用宝 app跳转应用宝
//检测是否安装了应用宝 public boolean isMobile_spExist() { PackageManager manager = this.getPackageManager(); ...
- 通过注册表检测是否安装了VC++ 2008 SP1 redistributable。
在发布 vs2008 程序时,往往会发现程序在某些电脑上无法运行.原因是目标电脑上没有相关的VC运行库. 最简单的方法,就是到微软的官网上下载并安装最新的 Visual C++ 2008 SP1 re ...
- iOS-82-自己APP地图内检测是否安装了其他地图(百度地图、高德地图、苹果地图),以及跳转
这功能早就做了,最近又在弄,所以记录下代码,免得岁数大了,健忘! 第一步:配置白名单 只有在info.plist文件里添加相应地图白名单,才可以检测到该应用,如图 第二步:检测是否安装了地图app 放 ...
- torch==1.1.0和torchvision-0.3.0安装
torch==1.1.0和torchvision-0.3.0安装 分开安装,每次都会把torch升级成1.5.0把版本.解决办法,一起安装. pip3 install --timeout=12000 ...
- mysql创立不了数据库_以下不属于MySQL安装时自动创建的数据库是( ) (5.0分)_学小易找答案...
[单选题]下列删除itcast数据库的sql语句中,正确的是 (5.0分) [单选题]MySQL提供的( )语句可查看数据表的创建语句. (5.0分) [单选题]下面选项中,属于定点数的类型是 (5. ...
最新文章
- 【字符串】字符串查找 ( 蛮力算法 )
- OSG造成屏幕闪烁,且鼠标不能操作的一行代码
- Oracle 数据库Patch概念性小常识 PSU,CPU,bundle patch
- Java乘法计算错误,Java JRE致命错误:乘法过多
- zookeeper配置文件说明
- swapfile.sys文件的作用及如何禁用Hibernate.sys和Pagefile.sys
- 英伟达、英特尔、AMD显卡设置,减少游戏掉帧卡顿
- 加一(python)
- 【MATLAB】使用“蒙特卡罗(Monter Carlo)”算法计算不规则图形的面积
- Eggjs笔记:详解Mongoose的聚合管道以及populate实现关联查询
- 一份超详细的网站推广优化方案 1
- 研二小硕的艰难实习路
- DELL 1520 笔记本拆机
- 实心和空心哪个抗弯能力强_同样材质,同样长度,质量相同的空心管和实心管,实心管抗弯曲能力强 (4.0分)...
- zblog php模板标签,Z-BlogPHP主题教程,zblogphp模板模块标签收藏
- 来,打一下五笔的字根表
- 关于低噪声放大器的测试过程
- App软著申请过程全记录
- 本题要求编写程序,从给定字符串中查找某指定的字符。
- 香港汇丰银行开户的个人条件是什么
热门文章
- STM32定时器中断时间计算
- 360°剖析:科创板“最”企业有什么不同?
- SQL结构化查询语言
- CAN记录仪 can数据记录仪简介和功能应用 can总线记录
- 【OFDM系列6】MIMO-OFDM系统模型、迫零(ZF)均衡检测和最小均方误差(MMSE)均衡检测原理和公式推导
- tcp_tw_reuse 为什么默认是关闭的?
- 综合视频指挥调度会议系统
- 批处理脚本之批量打开常用软件
- 从零开始学习Linux运维,成为IT领域翘楚(十)
- 双评价技术指南2020_“双评价”技术指南(11月份版)解读