在winform开发中,会需要采集客户端或者服务器的硬件信息和系统信息,本文就具体介绍如何获取这些数据。
获取这些数据,主要用到ManagementObjectSearcher类。
概述
基于指定的查询检索管理对象的集合,
使用方法:通过Key找到对象的集合,然后遍历集合
csharp
private void button1_Click(object sender, EventArgs e)
{
string keyValue = "Win32_Processor";
textBox1.Text = GetInfo(keyValue);
}
public string GetInfo(string key)
{
string ResultStr = string.Empty;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from "+key);
foreach(ManagementObject s in searcher.Get())
{
if(s["Name"]!= null)
{
ResultStr = s["Name"].ToString();
}
}
return ResultStr;
}
运行结果如图:

Key值
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 //已安装的网络协议
Win32_PnPEntity //all device 【所有设备】
属性
Caption --简短说明
ConfigOptions --数组,表示位于在底板上跳线和开关的配置。
CreationClassName --表示类的名称(就是Win32_baseboard类)
Depth --以英寸为单位的物理封装。
Description --对象的描述(底板)
Height --用英寸表示的物理包的高度
HostingBoard --如果为TRUE,该卡是一个主板,或在一个机箱中的基板。
HotSwappable --如果为TRUE,就是支持热插拔(判断是否支持热插拔)
InstallDate --日期和时间对象安装。此属性不需要的值以表示已安装的对象。
Manufacturer --表示制造商的名称
Model --物理元素的名称是已知。
Name --对象的名称标签
OtherIdentifyingInfo --捕获附加数据,超出资产标签的信息,可以用来标识物理元件
PartNumber --由负责生产或制造的物理元素的组织分配部件编号。
PoweredOn --如果为真,物理元素处于开机状态。
Product --产品的型号
Removable --判断是否可拆卸的
Replaceable --判断是否可更换的
RequirementsDescription --自由格式字符串描述方式,这张卡是身体不同于其他卡。该属性才有意义时,相对应的布尔值属性特殊要求是集真的
RequiresDaughterBoard --如果是TRUE,至少一个子板或辅助卡才能正常工作。
SerialNumber --制造商分配的用于识别所述物理元件数目。
SKU --库存的物理单元号。
SlotLayout --描述插槽位置
SpecialRequirements --如果为真,此卡是同类型的其他卡物理上唯一的,因此需要一个专门的插槽
Status --对象的当前状态。
Tag --符系统的基板唯一标识
Version --物理元素的版本
Weight --物理元素的重量英镑表示
Width --用英寸表示的物理元素的宽度