C#でManagementObjectSearcherを使用する方法
C#では、ManagementObjectSearcherを使用してWMIクエリを実行できます。Win32_Processクラスのすべてのプロセスを照会する方法の簡単な例を以下に示します。
using System;
using System.Management;
public class Program
{
public static void Main(string[] args)
{
// 创建一个查询对象
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Process");
// 执行查询
ManagementObjectCollection processList = searcher.Get();
// 遍历结果集
foreach (ManagementObject process in processList)
{
// 获取进程的属性值
string name = (string)process["Name"];
string id = (string)process["ProcessId"];
// 打印进程信息
Console.WriteLine($"Name: {name}, ProcessId: {id}");
}
}
}
上の例では、まず ManagementObjectSearcher オブジェクトを作成し、Win32_Process クラスの全プロセスを検索する WQL クエリ文を渡します。次に、Get メソッドを利用してクエリを実行し、ManagementObjectCollection に結果を保持します。最後に、foreach ループを使って結果の集合を繰り返し処理し、各プロセスのプロパティ値を取得して画面に表示します。
コード内でManagementObjectSearcherクラスを使用するには、System.Management名前空間をプロジェクトで参照する必要があることにご注意ください。