Heim > Backend-Entwicklung > C++ > Wie kann ich eine vollständige Liste der installierten Anwendungen in C#abrufen?

Wie kann ich eine vollständige Liste der installierten Anwendungen in C#abrufen?

Linda Hamilton
Freigeben: 2025-01-24 23:46:11
Original
799 Leute haben es durchsucht

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

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage