要使用C#读取WMI的ManagementObject集合,您可以按照以下步骤进行操作:
1. 引用System.Management命名空间:
```
using System.Management;
```
2. 创建一个ManagementObjectSearcher对象并设置查询条件。例如,如果要查询所有的磁盘驱动器,可以使用以下代码:
```
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
```
3. 执行查询并获取结果集:
```
ManagementObjectCollection collection = searcher.Get();
```
4. 遍历结果集并访问每个ManagementObject对象的属性:
```
foreach (ManagementObject obj in collection)
{
// 访问对象的属性
string name = obj["Name"].ToString();
string size = obj["Size"].ToString();
// ...
}
```
完整的示例代码如下所示:
```csharp
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();
}
}
}
```
此示例将查询所有的磁盘驱动器并打印出其名称和大小。您可以根据您的需求修改查询条件和访问的属性。