使用 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中文网其他相关文章!