您的位置:首页 > 其它

WMI的一些应用 CPU的序列号 键盘信息 网卡信息等

2009-09-24 15:13 218 查看
#region 取CPU的序列号
string cpuInfo = "";
ManagementClass cimObject = new ManagementClass("Win32_Processor");
//表示公共信息模型 (CIM) 管理类。
//管理类是一个 WMI 类,如 Win32_LogicalDisk 和 Win32_Process,前者表示磁盘驱动器,后者表示进程(如 Notepad.exe)。
//通过该类的成员,可以使用特定的 WMI 类路径访问 WMI 数据。
ManagementObjectCollection moc = cimObject.GetInstances();//返回该类的所有实例的集合。
int count=0;
StringBuilder sb = new StringBuilder();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();

Console.WriteLine("CPU的序列号是:");

Console.WriteLine(cpuInfo);

sb.Append("集合中第" + count.ToString() + "个的名字是:" + mo["Name"].ToString()+"/r/n");
count++;

PropertyDataCollection searcherProperties = mo.Properties;
foreach (PropertyData sp in searcherProperties)
{
Console.WriteLine(sp.Name + " " + sp.Value);//这个输出了一个键值对 一个属性一个属性值
}

}
Console.WriteLine(sb.ToString());//这里就一个关于CPU 的信息

// 表示通过 WMI 检索到的管理对象的不同集合。
//此集合中的对象为从 ManagementBaseObject 派生的类型,包括 ManagementObject 和 ManagementClass。
//通过 ManagementObjectSearcher 对象执行 WMI 查询,或者通过表示指定类型的 ManagementClass 检索该类型管理对象的枚举,

//同理 我们可以得到硬盘 网卡 键盘 鼠标的各种出厂信息 比较接近硬件的信息
// 下面是一些硬件的WMI
//Win32_Processor, // CPU 处理器
//Win32_PhysicalMemory, // 物理内存条
//Win32_Keyboard, // 键盘
//Win32_PointingDevice, // 点输入设备,包括鼠标。
//Win32_FloppyDrive, // 软盘驱动器
//Win32_DiskDrive, // 硬盘驱动器
//Win32_CDROMDrive, // 光盘驱动器
//Win32_BaseBoard, // 主板
//Win32_BIOS, // BIOS 芯片
//Win32_ParallelPort, // 并口
//Win32_SerialPort, // 串口
//Win32_SerialPortConfiguration, // 串口配置
//Win32_SoundDevice, // 多媒体设置,一般指声卡。
//Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
//Win32_USBController, // USB 控制器
//Win32_NetworkAdapter, // 网络适配器
//Win32_NetworkAdapterConfiguration, // 网络适配器设置
//Win32_Printer, // 打印机
//Win32_PrinterConfiguration, // 打印机设置
//Win32_PrintJob, // 打印机任务
//Win32_TCPIPPrinterPort, // 打印机端口
//Win32_POTSModem, // MODEM
//Win32_POTSModemToSerialPort, // MODEM 端口
//Win32_DesktopMonitor, // 显示器
//Win32_DisplayConfiguration, // 显卡
//Win32_DisplayControllerConfiguration, // 显卡设置
//Win32_VideoController, // 显卡细节。
//Win32_VideoSettings, // 显卡支持的显示模式。

//// 操作系统
//Win32_TimeZone, // 时区
//Win32_SystemDriver, // 驱动程序
//Win32_DiskPartition, // 磁盘分区
//Win32_LogicalDisk, // 逻辑磁盘
//Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
//Win32_LogicalMemoryConfiguration, // 逻辑内存配置
//Win32_PageFile, // 系统页文件信息
//Win32_PageFileSetting, // 页文件设置
//Win32_BootConfiguration, // 系统启动配置
//Win32_ComputerSystem, // 计算机信息简要
//Win32_OperatingSystem, // 操作系统信息
//Win32_StartupCommand, // 系统自动启动程序
//Win32_Service, // 系统安装的服务
//Win32_Group, // 系统管理组
//Win32_GroupUser, // 系统组帐号
//Win32_UserAccount, // 用户帐号
//Win32_Process, // 系统进程
//Win32_Thread, // 系统线程
//Win32_Share, // 共享
//Win32_NetworkClient, // 已安装的网络客户端
//Win32_NetworkProtocol, // 已安装的网络协议

ManagementClass a = new ManagementClass("Win32_Keyboard");
Console.WriteLine("这里是键盘的信息/r/n");
foreach (ManagementObject m in a.GetInstances())
{

PropertyDataCollection p=m.Properties;
foreach (PropertyData pd in p)
{
Console.WriteLine(pd.Name+": "+pd.Value);
}
}

//网卡的信息
ManagementClass b = new ManagementClass("Win32_NetworkAdapterConfiguration");
Console.WriteLine("这里是网卡的信息/r/n");
foreach (ManagementObject m in b.GetInstances())
{

PropertyDataCollection p = m.Properties;
foreach (PropertyData pd in p)
{
Console.WriteLine(pd.Name + ": " + pd.Value);
}
}

//得到网卡号
ManagementClass c = new ManagementClass("Win32_NetworkAdapterConfiguration");
Console.WriteLine("这里是网卡号的信息/r/n");
string[] macAddress = new string[2];
int j = 0;
foreach (ManagementObject m in c.GetInstances())
{

if ((bool)m["IPEnabled"] == true)
{
macAddress[j] = m["MacAddress"].ToString();
Console.WriteLine(macAddress[j]+"/r/n");
j++;

}
m.Dispose();

}

//可以进一步封装下 然后把所有的类都可以显示出来

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐