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