C# 获取电脑硬件和系统信息

在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 --用英寸表示的物理元素的宽度

相关推荐
阿蒙Amon4 小时前
C#每日面试题-重写和重载的区别
开发语言·c#
阿蒙Amon4 小时前
C#每日面试题-委托和事件的区别
java·开发语言·c#
bjzhang756 小时前
C#操作SQLite数据库
数据库·sqlite·c#
烛阴7 小时前
C# 正则表达式(3):分组与捕获——从子串提取到命名分组
前端·正则表达式·c#
时光呀时光慢慢走10 小时前
C# WinForms 实战:MQTTS 客户端开发(与 STM32 设备通信)
开发语言·c#
时光呀时光慢慢走11 小时前
MAUI 开发安卓 MQTT 客户端:实现远程控制 (完整源码 + 避坑指南)
android·物联网·mqtt·c#
WebRuntime11 小时前
问世间,exe是何物?直教AI沉默、Web寡言(4)
javascript·c#·.net·web
缺点内向12 小时前
如何在 C# 中将 Word 文档转换为 EMF(增强型图元文件)
开发语言·c#·word·.net
MyBFuture12 小时前
C# 哈希表与堆栈队列实战指南
开发语言·windows·c#·visual studio
猫不吃咸鱼14 小时前
Unity中攻击检测敌人的多种方法
游戏·unity·c#·游戏引擎