首页 > 后端开发 > C++ > 如何在 C# 中检索已安装应用程序的列表?

如何在 C# 中检索已安装应用程序的列表?

Barbara Streisand
发布: 2025-01-24 23:52:10
原创
352 人浏览过

How Can I Retrieve a List of Installed Applications in C#?

使用 C# 获取系统已安装应用程序

问题:

如何使用 C# 代码确定系统中安装的应用程序?

解决方案:

要使用 C# 获取系统中已安装应用程序的列表,您可以使用注册表或 WMI(Windows 管理规范)。

基于注册表的方法:

遍历注册表项 "SOFTWAREMicrosoftWindowsCurrentVersionUninstall" 可以提供已安装应用程序的完整列表。每个子项代表一个不同的应用程序,而 "DisplayName" 值则包含应用程序的名称。

WMI 方法:

一种较慢但可行的替代方法是通过 ManagementObjectSearcher 对象使用 WMI。查询 "SELECT * FROM Win32_Product" 将检索已安装程序的列表。每个 ManagementObject 的 "Name" 属性代表应用程序的名称。

代码片段:

基于注册表:

<code class="language-csharp">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"));
        }
    }
}</code>
登录后复制

基于 WMI:

<code class="language-csharp">ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach (ManagementObject mo in mos.Get())
{
    Console.WriteLine(mo["Name"]);
}</code>
登录后复制

注意事项:

基于注册表的方法也可能捕获 Windows 更新和组件。WMI 虽然较慢,但可能会错过为所有用户安装的应用程序。根据您的需求,您可以选择合适的方法。

以上是如何在 C# 中检索已安装应用程序的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板