C#获取Windows系统中所有已安装软件的名称和版本号
2024-08-22
41
需求
在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)
执行完成后,返回的是软件名称, 版本号这样的配对值。
更新于:19天前赞一波!2
相关文章
- TP6.0 系统服务的使用和理解
- Windows 系统 PhpStorm 2020无限试用30天
- windows 安装 redis 详细步骤
- windows 下 PHP 的 redis 扩展安装
- Windows中通过BAT写注册表给exe增加管理员权限运行
- Windows 下 exe 服务注册到 service 服务中
- 在 Windows 上安装 Composer
- 在Windows上安装PHP(将PHP加载到Apache中)
- C#中如何获取当前系统CPU的核心数
- C#的网站通过Windows性能计数器监测服务器的性能
- 在Windows 10计算机上安装Python的最佳方法是什么?
- Windows Named Pipe 如何提前终止ConnectNamedPipe的同步等待
- MySQL社区版5.x最新版安装包下载(Windows版本)
- Windows 11自带轻量级虚拟机Windows Sandbox(沙盒)
- Windows所有组合快捷键大全
- 在64位的Windows系统下运行32位的C#程序如何控制重定向
- 怎样在Linux系统 Ubuntu18.04 中安装微信
- cms系统套标签的简单介绍
- C#程序中如何获取当前操作系统的名称
- C#中获取本机IP地址、HostName 和DNS名称
文章评论
全部评论