Maison > développement back-end > C++ > Comment puis-je récupérer une liste complète des applications installées en C #?

Comment puis-je récupérer une liste complète des applications installées en C #?

Linda Hamilton
Libérer: 2025-01-24 23:46:11
original
799 Les gens l'ont consulté

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

Deux façons efficaces de répertorier les applications installées en C #

Cet article détaille deux méthodes pour récupérer une liste complète des applications installées sur un système Windows à l'aide de C #. Les deux approches offrent des avantages et des inconvénients, vous permettant de choisir le meilleur ajustement pour vos besoins.

Méthode 1: Énumération de la clé de registre

Cette méthode consiste à accéder directement au registre Windows. La clé SOFTWAREMicrosoftWindowsCurrentVersionUninstall contient des entrées pour la plupart des applications installées. Chaque sous-clé représente une application, et la valeur DisplayName fournit le nom de l'application.

Méthode 2: Tire de WMI (Windows Management Instrumentation)

WMI offre une approche plus structurée. En utilisant un ManagementObjectSearcher avec la requête SELECT * FROM Win32_Product, vous pouvez récupérer une collection d'instances ManagementObject, chacune représentant une application installée.

Exemples de code:

Méthode de registre:

<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>
Copier après la connexion

Méthode WMI:

<code class="language-csharp">ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach (ManagementObject mo in mos.Get())
{
    Console.WriteLine(mo["Name"]);
}</code>
Copier après la connexion

Comparaison:

La méthode de registre fournit généralement une liste plus complète, y compris les mises à jour et les composants Windows. Cependant, cela peut être moins efficace. La méthode WMI est généralement plus rapide mais pourrait manquer certaines applications, en particulier celles non installées dans le profil "Allégers". Le choix dépend de vos exigences spécifiques pour l'exhaustivité et les performances. Envisagez d'ajouter une gestion des erreurs (comme indiqué dans l'exemple de registre amélioré) pour une solution plus robuste.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal