ホームページ >バックエンド開発 >C++ >C# でインストールされているアプリケーションの完全なリストを取得するにはどうすればよいですか?

C# でインストールされているアプリケーションの完全なリストを取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-24 23:46:11820ブラウズ

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

インストールされたアプリケーションをc#

にリストする2つの効率的な方法 この記事では、C#を使用してWindowsシステムにインストールされているアプリケーションの完全なリストを取得するための2つの方法について詳しく説明しています。 どちらのアプローチも利点と短所を提供し、ニーズに最適なものを選択できるようになります。

メソッド1:レジストリキー列挙

この方法では、Windowsレジストリに直接アクセスすることが含まれます。キー

には、ほとんどのインストールされているアプリケーションのエントリが含まれています。 各サブキーはアプリケーションを表し、

値はアプリケーションの名前を提供します。 SOFTWAREMicrosoftWindowsCurrentVersionUninstallDisplayNameメソッド2:WMI(Windows Management Instrumentation)

のレバレッジ WMIは、より構造化されたアプローチを提供します。 クエリを使用してを使用することにより、インストールされているアプリケーションを表す

インスタンスのコレクションを取得できます。

ManagementObjectSearcherコードの例:SELECT * FROM Win32_ProductManagementObject

レジストリメソッド:

wmiメソッド:

<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>

比較:

<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メソッドは一般的に高速ですが、特に「Allusers」プロファイルの下にインストールされていないアプリケーションを見逃す可能性があります。 選択は、完全性とパフォーマンスに関する特定の要件に依存します。 より堅牢なソリューションのために(改良されたレジストリの例に示されているように)エラー処理を追加することを検討してください。

以上がC# でインストールされているアプリケーションの完全なリストを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。