// 初始化WMI类连接 ManagementClass mc = new ManagementClass("Win32_Process"); ```
核心方法析 ManagementClass提供四类关键操作接口:- GetInstances():获取WMI类所有实例集合
- GetProperties():检索类属性元数据
- InvokeMethod():执行WMI方法调用
- CreateInstance():创建新的WMI实例
系统进程监控实现
以下代码演示进程信息采集功能:
```csharp
foreach (ManagementObject process in mc.GetInstances())
{
Console.WriteLine($"进程名: {process["Name"]}");
Console.WriteLine($"PID: {process["ProcessId"]}");
Console.WriteLine($"内存占用: {process["WorkingSetSize"]} bytes");
}
```
硬件信息采集示例
获取磁盘驱动器信息:
```csharp
ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
foreach (ManagementObject disk in diskClass.GetInstances())
{
if (disk["DriveType"].ToString() == "3") // 本地固定磁盘
{
Console.WriteLine($"盘符: {disk["DeviceID"]}");
Console.WriteLine($"总容量: {Convert.ToDouble(disk["Size"]) / (1024 * 1024 * 1024):F2} GB");
Console.WriteLine($"可用空间: {Convert.ToDouble(disk["FreeSpace"]) / (1024 * 1024 * 1024):F2} GB");
}
}
```
系统管理操作
远程执行进程创建:
```csharp
ManagementClass processClass = new ManagementClass("Win32_Process");
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
inParams["CommandLine"] = "notepad.exe";
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null); uint returnValue = (uint)outParams["ReturnValue"]; if (returnValue == 0) Console.WriteLine("进程创建成功"); ```
ManagementClass通过标准化接口简化WMI操作复杂度,在系统监控、硬件管理、远程控制等场景中展现出强大能力,是C#开发人员构建系统级应用的重要工具。
