您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在系统中获取已安装的应用程序

在系统中获取已安装的应用程序

遍历注册表项“ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall”似乎可以提供已安装应用程序的完整列表。

除了下面的示例,您还可以找到与我在这里所做的相似的版本。

这是一个粗略的示例,您可能想要做一些事情来去除空白行,例如在提供的第二个链接中。

string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
    foreach(string subkey_name in key.GetSubKeyNames())
    {
        using(RegistryKey subkey = key.OpenSubKey(subkey_name))
        {
            Console.WriteLine(subkey.GetValue("DisplayName"));
        }
    }
}

或者,您可以使用已提到的WMI:

ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject mo in mos.Get())
{
    Console.WriteLine(mo["Name"]);
}

但这执行起来比较慢,而且我听说它可能只列出“ ALLUSERS”下安装的程序,尽管可能不正确。它还会忽略Windows组件和更新,这可能对您很方便。

其他 2022/1/1 18:15:51 有583人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶