c# - 如何从注册表中检索已安装的应用程序版本?

标签 c# registry

我想获取我的机器上安装的软件的版本号...可以使用 C# 中的Registry 类吗?

     RegistryKey regKey;

    public void ReadReg()
    {
        regKey = Registry.LocalMachine;
        RegistryKey sk= regKey.OpenSubKey("SOFTWARE\\");
        string[] subKeys = sk.GetSubKeyNames();

        foreach (string  sub in subKeys)
        {
            Console.WriteLine(sub);
        }            
    }

最佳答案

安装程序没有存储产品信息的标准且普遍可访问的位置。然而,安装程序数据库确实包含此信息(产品直接或间接使用 MSI),并且此信息可通过 WMI 获得。

WMI 也可通过 .NET 使用 System.Management类型。查询:

select name,version from Win32_Product

调整示例 here这个查询应该不会太难。

关于c# - 如何从注册表中检索已安装的应用程序版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624450/

相关文章:

c++ - 如何在 C++ 中创建不可删除的注册表项(或文件)

windows - 编辑Windows注册表时(如果需要)可使用哪个注册表编辑器版本来启动reg文件?

c# - 读取所有注册表值的快速方法

C# : changing listbox row color?

c# - Umbraco Cast "IPublishedContent"类型到 "CustomModel"类型

c# - 每天同步不同机器上的两个 SQL Server 数据库有什么好方法吗?

c# - 为什么以辅助角色托管 WCF 服务

windows - 如何检查哪个程序正在读取/写入磁盘和注册表

c# - C# 枚举标志必须是顺序的吗

c - RegSetValueExA() 函数在 C 中的注册表项名称中放置方 block