ManagementClassクラスを使用してC#でハードウェア情報を取得する方法は何ですか?

ManagementClassクラスを使用してハードウェア情報を取得するには、最初にSystem.Management名前空間を参照する必要があります。その後、次の手順に従うことができます。

  1. ManagementObjectSearcherオブジェクトを作成し、WMIクエリを実行するために使用します。クエリ文とスコープ(例:「SELECT * FROM Win32_Processor」はプロセッサー情報を取得することを意味します)を指定して、このオブジェクトを初期化できます。
using System.Management;
// ...

string query = "SELECT * FROM Win32_Processor";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
  1. Get() メソッドを呼び出してクエリを実行し、その結果をManagementObjectCollectionオブジェクトに保存します。
ManagementObjectCollection collection = searcher.Get();
  1. ManagementObjectCollectionオブジェクトをループして、各ManagementObjectオブジェクトの属性値を出力するか、変数に保存します。
foreach (ManagementObject obj in collection)
{
    foreach (PropertyData property in obj.Properties)
    {
        Console.WriteLine(property.Name + ": " + property.Value);
    }
}

上記のコードは、プロセッサ情報を取得する方法の例に過ぎません。他のハードウェア情報を取得する場合は、クエリ文中の「Win32_Processor」を他のWMIクラス名に置き換えることができます。たとえば、「Win32_PhysicalMemory」は物理メモリ情報を取得することを表します。

ManagementClassクラスを使用してハードウェア情報を取得する際には、プログラム内に管理権限のアクセス許可を追加する必要があります。プロジェクトのプロパティの「マニフェスト」タブで「管理権限の要求」オプションをチェックするか、管理者としてプログラムを実行してください。

bannerAds