【文章标题】: 设备管理01
【文章作者】: 有酒醉
【作者邮箱】: wuqr32@sina.com
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一、前言
WMI是一种管理技术,用于访问您的计算机系统.WMI的最大优点是对象管理器实现了它自己的轮循机制,如果我们想接收通知,如CPU利用率
是否非常高,可用磁盘空间是否下降太快,等等.这些都可以告知对象管理器,它将处理后续的所有事情,并在需要的时产生通知.
二、WMI关键的几个类(参阅MSDN)
ManagementObject 或 ManagementClass:分别为单个管理对象或类。
ManagementObjectSearcher:用于根据指定的查询或枚举检索 ManagementObject 或 ManagementClass 对象的集合。
ManagementEventWatcher:用于预订来自 WMI 的事件通知。
ManagementQuery:用作所有查询类的基础。
三、使用WMI与计算机交互
示例 -- 查询机器处理器信息
// Author by Yzl
using System;
using System.Management;
public class ProcessorInfo
... {
public static void Main(string[] args)
...{
ManagementClass processorCls = new ManagementClass("Win32_Processor");
// 罗列CPU处理器的信息
foreach(ManagementObject processorObj in processorCls.GetInstances())
...{
Console.WriteLine("Processor Id:"+processorObj["ProcessorId"]);
Console.WriteLine("Processor Name:" + processorObj["Name"]);
Console.WriteLine("Current Clock Speed:" + processorObj["CurrentClockSpeed"]);
}
}
}
如果要查阅远程计算机的处理器信息,可以做如下更改:
ConnectionOptions connection = new ConnectionOptions();
connection.Username = "user";
connection.Password = "password";
ManagementScope scope = new ManagementScope("RemoteComputerName//root//CIMV2", connection);
scope.Connect();
ManagementPath p = new ManagementPath("Win32_Processor");
ObjectGetOptions o = new ObjectGetOptions(null, true);
ManagementClass c = new ManagementClass(s, p, o);
查阅其他信息参阅Win32_Processor结构
... {
uint16 AddressWidth;
uint16 Architecture;
uint16 Availability;
string Caption;
uint32 ConfigManagerErrorCode;
boolean ConfigManagerUserConfig;
uint16 CpuStatus;
string CreationClassName;