.NET Framework利用C#读取WMI的ManagementObject集合的方法
C# で WMI の ManagementObject コレクションを読み取るには、次のステップに従います。
- System.Management名前空間を参照してください
using System.Management;
- ManagementObjectSearcher オブジェクトを作成し、クエリ条件を設定します。たとえば、すべてのディスク ドライブをクエリする場合、以下のコードを使用できます。
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
- クエリを実行して結果セットを取得する:
ManagementObjectCollection collection = searcher.Get();
- 結果セットを反復処理して、各 ManagementObject オブジェクトのプロパティにアクセスする:
foreach (ManagementObject obj in collection)
{
// 访问对象的属性
string name = obj["Name"].ToString();
string size = obj["Size"].ToString();
// ...
}
完全なサンプルコードは次のとおりです。
using System;
using System.Management;
namespace WmiExample
{
class Program
{
static void Main(string[] args)
{
try
{
// 创建一个ManagementObjectSearcher对象并设置查询条件
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
// 执行查询并获取结果集
ManagementObjectCollection collection = searcher.Get();
// 遍历结果集并访问每个ManagementObject对象的属性
foreach (ManagementObject obj in collection)
{
string name = obj["Name"].ToString();
string size = obj["Size"].ToString();
Console.WriteLine($"驱动器名称:{name},大小:{size}");
}
}
catch (Exception e)
{
Console.WriteLine($"发生错误:{e.Message}");
}
Console.ReadLine();
}
}
}
この例ではすべてのディスクドライブを照会し、それらの名前とサイズを出力します。自分のニーズに合わせて照会基準やアクセスするプロパティを変更できます。