C#获取Windows系统中所有已安装软件的名称和版本号
2024-08-22
176
需求
在Windows中使用C#做软件开发,有时候需要获取当前系统中已安装的软件及其版本号,接下来就简单介绍一下,如何通过C#获取来实现。
示例代码
已安装的软件,在注册表中都会有软件信息和卸载信息,我们只需要扫描注册表即可获取到需要的信息了,代码如下:
public static Dictionarystring, string GetAllInstalledSoftware(string name)
{
var keys = new RegistryKey[]
{
Registry.CurrentUser.OpenSubKey(@SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall),
Registry.LocalMachine.OpenSubKey(@SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall),
Registry.CurrentUser.OpenSubKey(@SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall),
Registry.LocalMachine.OpenSubKey(@SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall)
};
var softs = new Dictionarystring, string();
foreach (var k in keys)
{
if (k == null) continue;
foreach (var keyName in k.GetSubKeyNames())
{
RegistryKey subkey = k.OpenSubKey(keyName);
var displayName = subkey.GetValue(DisplayName) as string;
if (!string.IsNullOrEmpty(displayName) displayName == name)
{
var displayVersion = subkey.GetValue(DisplayVersion) as string;
if (!string.IsNullOrEmpty(displayVersion))
{
softs.Add(displayName, displayVersion);
}
}
}
}
return softs;
}
以上代码,主要针对64位的Windows,获取系统已安装的32位或64位的应用程序和版本,对于32位Windows,不需要扫描如下注册表路径:
Registry.CurrentUser.OpenSubKey(@SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall),
Registry.LocalMachine.OpenSubKey(@SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall)
执行完成后,返回的是软件名称, 版本号这样的配对值。
更新于:3个月前赞一波!2
相关文章
- LinkWeChat开源系统
- 每一个程序员,都希望能成为分布式系统架构师
- 游戏陪玩系统语音聊天系统商业版源码安装教程
- 【说站】php文件用什么软件编写
- WinToUSB | 把Windows塞进U盘里即插即用
- 从事软件开发工作的一些感悟
- 【说站】python系统内置方法如何获取
- 【说站】php文件用什么软件打开
- 【说站】python os怎样处理系统文件
- 系统架构7个非功能性需求
- 4款功能强大桌面虚拟机软件推荐
- windows桌面应用GUI框架选择及其优缺点
- mac 系统 homebrew 管理 PHP
- TP6.0 空控制器: 健壮系统服务
- Web网页版Windows源码
- 系统的讲解网站的优化
- TP6.0 系统服务的使用和理解
- Windows 系统 PhpStorm 2020无限试用30天
- windows 安装 redis 详细步骤
- windows 下 PHP 的 redis 扩展安装
文章评论
评论问答