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

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

Barbara Streisand
リリース: 2025-01-24 23:52:10
オリジナル
352 人が閲覧しました

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

C# を使用してシステムにインストールされているアプリケーションを取得します

質問:

C# コードを使用してシステムにインストールされているアプリケーションを確認するにはどうすればよいですか?

解決策:

C# を使用してシステムにインストールされているアプリケーションのリストを取得するには、レジストリまたは WMI (Windows Management Instrumentation) を使用できます。

レジストリベースの方法:

レジストリ キー「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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート