在C#中,您可以使用ManagementObjectSearcher来执行WMI查询。下面是一个简单的示例,展示了如何使用ManagementObjectSearcher来查询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对象,并传入一个WQL查询语句,用于查询Win32_Process类的所有进程。然后,我们使用Get方法执行查询,并将结果保存在ManagementObjectCollection中。最后,我们使用foreach循环遍历结果集,获取每个进程的属性值,并打印出来。
请注意,您需要在项目中引用System.Management命名空间,以便在代码中使用ManagementObjectSearcher类。