Zwei effiziente Möglichkeiten, installierte Anwendungen in C# aufzulisten
In diesem Artikel werden zwei Methoden zum Abrufen einer vollständigen Liste der installierten Anwendungen auf einem Windows-System mithilfe von C# beschrieben. Beide Ansätze bieten Vor- und Nachteile, sodass Sie die beste Lösung für Ihre Bedürfnisse auswählen können.
Methode 1: Registrierungsschlüsselaufzählung
Diese Methode beinhaltet den direkten Zugriff auf die Windows-Registrierung. Der Schlüssel SOFTWAREMicrosoftWindowsCurrentVersionUninstall
enthält Einträge für die meisten installierten Anwendungen. Jeder Unterschlüssel stellt eine Anwendung dar und der Wert DisplayName
gibt den Namen der Anwendung an.
Methode 2: Nutzung von WMI (Windows Management Instrumentation)
WMI bietet einen strukturierteren Ansatz. Durch die Verwendung eines ManagementObjectSearcher
mit der Abfrage SELECT * FROM Win32_Product
können Sie eine Sammlung von ManagementObject
-Instanzen abrufen, die jeweils eine installierte Anwendung darstellen.
Codebeispiele:
Registrierungsmethode:
<code class="language-csharp">string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey)) { if (key != null) // Add null check for robustness { foreach (string subkeyName in key.GetSubKeyNames()) { using (RegistryKey subkey = key.OpenSubKey(subkeyName)) { if (subkey != null) // Add null check for robustness { object displayName = subkey.GetValue("DisplayName"); Console.WriteLine(displayName != null ? displayName.ToString() : "DisplayName not found"); } } } } }</code>
WMI-Methode:
<code class="language-csharp">ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product"); foreach (ManagementObject mo in mos.Get()) { Console.WriteLine(mo["Name"]); }</code>
Vergleich:
Die Registrierungsmethode bietet normalerweise eine umfassendere Liste, einschließlich Windows-Updates und -Komponenten. Es kann jedoch weniger effizient sein. Die WMI-Methode ist im Allgemeinen schneller, kann jedoch einige Anwendungen übersehen, insbesondere solche, die nicht unter dem Profil „ALLUSERS“ installiert sind. Die Auswahl hängt von Ihren spezifischen Anforderungen an Vollständigkeit und Leistung ab. Erwägen Sie das Hinzufügen einer Fehlerbehandlung (wie im verbesserten Registrierungsbeispiel gezeigt), um eine robustere Lösung zu erhalten.
Das obige ist der detaillierte Inhalt vonWie kann ich eine vollständige Liste der installierten Anwendungen in C#abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!