インストールされたアプリケーションをc#
にリストする2つの効率的な方法 この記事では、C#を使用してWindowsシステムにインストールされているアプリケーションの完全なリストを取得するための2つの方法について詳しく説明しています。 どちらのアプローチも利点と短所を提供し、ニーズに最適なものを選択できるようになります。 メソッド1:レジストリキー列挙この方法では、Windowsレジストリに直接アクセスすることが含まれます。キー
には、ほとんどのインストールされているアプリケーションのエントリが含まれています。 各サブキーはアプリケーションを表し、値はアプリケーションの名前を提供します。
SOFTWAREMicrosoftWindowsCurrentVersionUninstall
DisplayName
メソッド2:WMI(Windows Management Instrumentation)
のレバレッジ WMIは、より構造化されたアプローチを提供します。 クエリを使用してを使用することにより、インストールされているアプリケーションを表す
インスタンスのコレクションを取得できます。ManagementObjectSearcher
コードの例:SELECT * FROM Win32_Product
ManagementObject
レジストリメソッド:
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 サイトの他の関連記事を参照してください。