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 サイトの他の関連記事を参照してください。