一、计算机操作系统信息 (1)获取操作系统版本描述/// summary/// 操作系统版本/// /summarypublic static string OSDescription { get; } = System.Runtime.InteropServices.RuntimeInformation.OSDescrip...
一、计算机操作系统信息
(1)获取操作系统版本描述

/// <summary>
/// 操作系统版本
/// </summary>
public static string OSDescription { get; } = System.Runtime.InteropServices.RuntimeInformation.OSDescription;
View Code
(2)获取操作系统架构

/// <summary>
/// 操作系统架构(<see cref="Architecture">)
/// </summary>
public static string OSArchitecture { get; } = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString();
View Code
(3)判断操作系统是否为指定的操作系统

/// <summary>
/// 是否为Windows操作系统
/// </summary>
public static bool IsOSPlatform { get; } = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows);
View Code
二、计算机基本系统信息
通过 VMI中的 ManagementClass 类输入路径 “Win32_ComputerSystemProduct”,可获取电脑型号、UUID等基本信息,全部如下:

/// <summary>
/// 电脑型号
// Caption:计算机系统产品
// Description:计算机系统产品
// ElementName:
// IdentifyingNumber:CND0162XZ1
// InstanceID:
// Name:HP ENVY x360 Convertible 15-ed0xxx
// SKUNumber:
// UUID:A6C31C0E-997C-EA11-8104-B05CDA905B6C
// Vendor:HP
// Version:Type1ProductConfigId
// WarrantyDuration:
// WarrantyStartDate:
/// </summary>
/// <returns></returns>
public static string GetComputerVersion()
{
var version = new StringBuilder();
var moc = new ManagementClass("Win32_ComputerSystemProduct").GetInstances();
foreach (ManagementObject mo in moc)
{
foreach (var item in mo.Properties)
{
version.Append($"{item.Name}:{item.Value}\r\n");
}
}
return version.ToString(); ;
}
View Code
三、计算机主板信息
通过 VMI中的 ManagementClass 类输入路径 “Win32_BaseBoard”,可获取主板型号、主板标识等基本信息,全部如下:

/// <summary>
/// 主板信息
// Caption:简短说明
// ConfigOptions:数组,表示位于在底板上跳线和开关的配置
// CreationClassName:表示类的名称(就是Win32_baseboard类)
// Depth:对象的描述(底板)
// Description:基板
// Height:
// HostingBoard:如果为TRUE,该卡是一个主板,或在一个机箱中的基板。
// HotSwappable:如果为TRUE,就是支持热插拔(判断是否支持热插拔)
// InstallDate:
// Manufacturer:表示制造商的名称
// Model:
// Name:对象的名称标签
// OtherIdentifyingInfo:
// PartNumber:
// PoweredOn:如果为真,物理元素处于开机状态
// Product:产品的型号
// Removable:判断是否可拆卸的
// Replaceable:判断是否可更换的
// RequirementsDescription:
// RequiresDaughterBoard:False
// SerialNumber:制造商分配的用于识别所述物理元件数目
// SKU:
// SlotLayout:
// SpecialRequirements:
// Status:对象的当前状态
// Tag:符系统的基板唯一标识
// Version:08.32
// Weight:
// Width:
/// </summary>
/// <returns></returns>
public static string GetBaseBoardInfo()
{
var baseBoard = new StringBuilder();
var moc = new ManagementClass("Win32_BaseBoard").GetInstances();
foreach (ManagementObject mo in moc)
{
foreach (var item in mo.Properties)
{
baseBoard.Append($"{item.Name}:{item.Value}\r\n");
}
}
return baseBoard.ToString();
}
View Code
四、计算机处理器信息
通过 VMI中的 ManagementClass 类输入路径 “Win32_Processor”,可获取CPU个数、最高主频、当前主频等基本信息,全部如下:

/// <summary>
/// 处理器信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">)
// AddressWidth:在32位操作系统,该值是32,在64位操作系统是64
// Architecture:所使用的平台的处理器架构
// AssetTag:代表该处理器的资产标签
// Availability:设备的状态
// Caption:设备的简短描述
// Characteristics:处理器支持定义的功能
// ConfigManagerErrorCode:Windows API的配置管理器错误代码
// ConfigManagerUserConfig:如果为TRUE,该装置是使用用户定义的配置
// CpuStatus:处理器的当前状态
// CreationClassName:出现在用来创建一个实例继承链的第一个具体类的名称
// CurrentClockSpeed:处理器的当前速度,以MHz为单位
// CurrentVoltage:处理器的电压。如果第八位被设置,位0-6包含电压乘以10,如果第八位没有置位,则位在VoltageCaps设定表示的电压值。 CurrentVoltage时SMBIOS指定的电压值只设置
// DataWidth:在32位处理器,该值是32,在64位处理器是64
// Description:描述
// DeviceID:在系统上的处理器的唯一标识符
// ErrorCleared:如果为真,报上一个错误代码的被清除
// ErrorDescription:错误的代码描述
// ExtClock:外部时钟频率,以MHz为单位
// Family:处理器系列类型
// InstallDate:安装日期
// L2CacheSize:二级缓存大小
// L2CacheSpeed:二级缓存处理器的时钟速度
// L3CacheSize:三级缓存大小
// L3CacheSpeed:三级缓存处理器的时钟速度
// LastErrorCode:报告的逻辑设备上一个错误代码
// Level:处理器类型的定义。该值取决于处理器的体系结构
// LoadPercentage:每个处理器的负载能力,平均到最后一秒
// Manufacturer:处理器的制造商
// MaxClockSpeed:处理器的最大速度,以MHz为单位
// Name:处理器的名称
// NumberOfCores:处理器的当前实例的数目。核心是在集成电路上的物理处理器
// NumberOfEnabledCore:每个处理器插槽启用的内核数
// NumberOfLogicalProcessors:用于处理器的当前实例逻辑处理器的数量
// OtherFamilyDescription:处理器系列类型
// PartNumber:这款处理器的产品编号制造商所设置
// PNPDeviceID:即插即用逻辑设备的播放设备标识符
// PowerManagementCapabilities:逻辑设备的特定功率相关的能力阵列
// PowerManagementSupported:如果为TRUE,该装置的功率可以被管理,这意味着它可以被放入挂起模式
// ProcessorId:描述处理器功能的处理器的信息
// ProcessorType:处理器的主要功能
// Revision:系统修订级别取决于体系结构
// Role:所述处理器的作用
// SecondLevelAddressTranslationExtensions:如果为True,该处理器支持用于虚拟地址转换扩展
// SerialNumber:处理器的序列号
// SocketDesignation:芯片插座的线路上使用的类型
// Status:对象的当前状态
// StatusInfo:对象的当前状态信息
// Stepping:在处理器家族处理器的版本
// SystemCreationClassName:创建类名属性的作用域计算机的价值
// SystemName:系统的名称
// ThreadCount:每个处理器插槽的线程数
// UniqueId:全局唯一标识符的处理器
// UpgradeMethod:CPU插槽的信息
// Version:依赖于架构处理器的版本号
// VirtualizationFirmwareEnabled:如果真,固件可以虚拟化扩展
// VMMonitorModeExtensions:如果为True,该处理器支持Intel或AMD虚拟机监控器扩展。
// VoltageCaps:该处理器的电压的能力
/// </summary>
/// <returns></returns>
public static string GetCPUInfo()
{
var cpu = new StringBuilder();
var moc = new ManagementClass("Win32_Processor").GetInstances();
foreach (var mo in moc)
{
foreach (var item in mo.Properties)
{
cpu.Append($"{item.Name}:{item.Value}\r\n");
}
}
return cpu.ToString();
}
View Code
五、计算机内存信息
通过 VMI中的 ManagementClass 类输入路径 “Win32_PhysicalMemory”,可获取内存总大小等基本信息,输入路径 “Win32_PerfRawData_PerfOS_Memory”,可获取可利用内存大小等基本信息,全部如下:

/// <summary>
/// 内存信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">)
// Attributes:1
// BankLabel:BANK 2
// Capacity:获取内存容量(单位KB)
// Caption:物理内存还虚拟内存
// ConfiguredClockSpeed:配置时钟速度
// ConfiguredVoltage:配置电压
// CreationClassName:创建类名
// DataWidth:获取内存带宽
// Description:描述
// DeviceLocator:获取设备定位器
// FormFactor:构成因素
// HotSwappable:是否支持热插拔
// InstallDate:安装日期
// InterleaveDataDepth:数据交错深度
// InterleavePosition:数据交错的位置
// Manufacturer:生产商
// MaxVoltage:最大电压
// MemoryType:内存类型
// MinVoltage:最小电压
// Model:型号
// Name:名字
// OtherIdentifyingInfo:其他识别信息
// PartNumber:零件编号
// PositionInRow:行位置
// PoweredOn:是否接通电源
// Removable:是否可拆卸
// Replaceable:是否可更换
// SerialNumber:编号
// SKU:SKU号
// SMBIOSMemoryType:SMBIOS内存类型
// Speed:速率
// Status:状态
// Tag:唯一标识符的物理存储器
// TotalWidth:总宽
// TypeDetail:类型详细信息
// Version:版本信息
// AvailableBytes:可利用内存大小(B)
// AvailableKBytes:可利用内存大小(KB)
// AvailableMBytes:可利用内存大小(MB)
// CacheBytes:125460480
// CacheBytesPeak:392294400
// CacheFaultsPersec:70774721
// Caption:
// CommitLimit:31939616768
// CommittedBytes:20280020992
// DemandZeroFaultsPersec:759274721
// Description:
// FreeAndZeroPageListBytes:2097152
// FreeSystemPageTableEntries:12528527
// Frequency_Object:0
// Frequency_PerfTime:10000000
// Frequency_Sys100NS:10000000
// LongTermAverageStandbyCacheLifetimes:14400
// ModifiedPageListBytes:41500672
// Name:
// PageFaultsPersec:1560432075
// PageReadsPersec:19173703
// PagesInputPersec:98834167
// PagesOutputPersec:25921396
// PagesPersec:124755563
// PageWritesPersec:103362
// PercentCommittedBytesInUse:2727084283
// PercentCommittedBytesInUse_Base:4294967295
// PoolNonpagedAllocs:0
// PoolNonpagedBytes:798519296
// PoolPagedAllocs:0
// PoolPagedBytes:709898240
// PoolPagedResidentBytes:496873472
// StandbyCacheCoreBytes:247545856
// StandbyCacheNormalPriorityBytes:847036416
// StandbyCacheReserveBytes:0
// SystemCacheResidentBytes:125460480
// SystemCodeResidentBytes:0
// SystemCodeTotalBytes:0
// SystemDriverResidentBytes:17592179236864
// SystemDriverTotalBytes:16953344
// Timestamp_Object:0
// Timestamp_PerfTime:5838028983825
// Timestamp_Sys100NS:132532052633540000
// TransitionFaultsPersec:792343233
// TransitionPagesRePurposedPersec:78554340
// WriteCopiesPersec:17253788
/// </summary>
/// <returns></returns>
public static string GetRAMInfo()
{
var ram = new StringBuilder();
var searcher = new ManagementObjectSearcher()
{
Query = new SelectQuery("Win32_PhysicalMemory"),
}.Get().GetEnumerator();
while (searcher.MoveNext())
{
ManagementBaseObject baseObj = searcher.Current;
foreach (var item in baseObj.Properties)
{
ram.Append($"{item.Name}:{item.Value}\r\n");
}
}
searcher = new ManagementObjectSearcher()
{
Query = new SelectQuery("Win32_PerfRawData_PerfOS_Memory"),
}.Get().GetEnumerator();
while (searcher.MoveNext())
{
ManagementBaseObject baseObj = searcher.Current;
foreach (var item in baseObj.Properties)
{
ram.Append($"{item.Name}:{item.Value}\r\n");
}
}
return ram.ToString();
}
View Code
六、计算机显卡信息
通过 VMI中的 ManagementClass 类输入路径 “Win32_VideoController”,可获取显卡类型、屏幕分辨率等基本信息,全部如下:

/// <summary>
/// 显卡信息
// AcceleratorCapabilities:
// AdapterCompatibility:Intel Corporation
// AdapterDACType:Internal
// AdapterRAM:1073741824
// Availability:3
// CapabilityDescriptions:
// Caption:Intel(R) UHD Graphics
// ColorTableEntries:
// ConfigManagerErrorCode:0
// ConfigManagerUserConfig:False
// CreationClassName:Win32_VideoController
// CurrentBitsPerPixel:32
// CurrentHorizontalResolution:1920
// CurrentNumberOfColors:4294967296
// CurrentNumberOfColumns:0
// CurrentNumberOfRows:0
// CurrentRefreshRate:60
// CurrentScanMode:4
// CurrentVerticalResolution:1080
// Description:Intel(R) UHD Graphics
// DeviceID:VideoController1
// DeviceSpecificPens:
// DitherType:0
// DriverDate:20200109000000.000000-000
// DriverVersion:26.20.100.7755
// ErrorCleared:
// ErrorDescription:
// ICMIntent:
// ICMMethod:
// InfFilename:oem41.inf
// InfSection:iCML_w10_DS
// InstallDate:
// InstalledDisplayDrivers:C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igdumdim64.dll,C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igd10iumd64.dll,C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igd10iumd64.dll,C:\windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_d512f7a0dbcb7a2f\igd12umd64.dll
// LastErrorCode:
// MaxMemorySupported:
// MaxNumberControlled:
// MaxRefreshRate:75
// MinRefreshRate:50
// Monochrome:False
// Name:Intel(R) UHD Graphics
// NumberOfColorPlanes:
// NumberOfVideoPages:
// PNPDeviceID:PCI\VEN_8086&DEV_9B41&SUBSYS_8757103C&REV_02\3&11583659&2&10
// PowerManagementCapabilities:
// PowerManagementSupported:
// ProtocolSupported:
// ReservedSystemPaletteEntries:
// SpecificationVersion:
// Status:OK
// StatusInfo:
// SystemCreationClassName:Win32_ComputerSystem
// SystemName:DESKTOP-OLA70V5
// SystemPaletteEntries:
// TimeOfLastReset:
// VideoArchitecture:5
// VideoMemoryType:2
// VideoMode:
// VideoModeDescription:屏幕描述
// VideoProcessor:Intel(R) UHD Graphics Family
// AcceleratorCapabilities:
// AdapterCompatibility:NVIDIA
// AdapterDACType:Integrated RAMDAC
// AdapterRAM:4293918720
// Availability:8
// CapabilityDescriptions:
// Caption:显卡描述
// ColorTableEntries:
// ConfigManagerErrorCode:0
// ConfigManagerUserConfig:False
// CreationClassName:Win32_VideoController
// CurrentBitsPerPixel:
// CurrentHorizontalResolution:
// CurrentNumberOfColors:
// CurrentNumberOfColumns:
// CurrentNumberOfRows:
// CurrentRefreshRate:
// CurrentScanMode:
// CurrentVerticalResolution:
// Description:NVIDIA GeForce MX330
// DeviceID:VideoController2
// DeviceSpecificPens:
// DitherType:
// DriverDate:20200923000000.000000-000
// DriverVersion:27.21.14.5241
// ErrorCleared:
// ErrorDescription:
// ICMIntent:
// ICMMethod:
// InfFilename:oem123.inf
// InfSection:Section043
// InstallDate:
// InstalledDisplayDrivers:C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll,C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll,C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll,C:\windows\System32\DriverStore\FileRepository\nvhm.inf_amd64_c87780efe1918cc5\nvldumdx.dll
// LastErrorCode:
// MaxMemorySupported:
// MaxNumberControlled:
// MaxRefreshRate:
// MinRefreshRate:
// Monochrome:False
// Name:NVIDIA GeForce MX330
// NumberOfColorPlanes:
// NumberOfVideoPages:
// PNPDeviceID:PCI\VEN_10DE&DEV_1D16&SUBSYS_8757103C&REV_A1\4&24375CB2&0&00E0
// PowerManagementCapabilities:
// PowerManagementSupported:
// ProtocolSupported:
// ReservedSystemPaletteEntries:
// SpecificationVersion:
// Status:OK
// StatusInfo:
// SystemCreationClassName:Win32_ComputerSystem
// SystemName:DESKTOP-OLA70V5
// SystemPaletteEntries:
// TimeOfLastReset:
// VideoArchitecture:5
// VideoMemoryType:2
// VideoMode:
// VideoModeDescription:
// VideoProcessor:GeForce MX330
/// </summary>
/// <returns></returns>
public static string GetGPUInfo()
{
var gpu = new StringBuilder();
var moc = new ManagementObjectSearcher("select * from Win32_VideoController").Get();
foreach (var mo in moc)
{
foreach (var item in mo.Properties)
{
gpu.Append($"{item.Name}:{item.Value}\r\n");
}
}
return gpu.ToString(); ;
}
View Code
七、计算机硬盘信息
通过 VMI中的 ManagementClass 类输入路径 “Win32_LogicalDisk”,可获取硬盘分区名称、各分区总容量、可利用容量,全部如下:

/// <summary>
/// 硬盘驱动器信息(<see cref="https://www.cnblogs.com/zhesong/p/wmiid.html">)
// Access:0
// Availability:
// BlockSize:
// Caption:硬盘描述,例如“C:”
// Compressed:False
// ConfigManagerErrorCode:Windows配置管理器错误代码
// ConfigManagerUserConfig:如果为True,该设备使用用户定义的配置
// CreationClassName:Win32_LogicalDisk
// Description:本地固定磁盘
// DeviceID:磁盘驱动器与系统中的其他设备的唯一标识符,例如“C:”
// DriveType:3
// ErrorCleared:如果为True,报告LastErrorCode错误现已清除
// ErrorDescription:关于可能采取的纠正措施记录在LastErrorCode错误,和信息的详细信息
// ErrorMethodology:误差检测和校正的类型被此设备支持
// FileSystem:NTFS
// FreeSpace:可使用硬盘大小
// InstallDate:
// LastErrorCode:
// MaximumComponentLength:255
// MediaType:由该设备使用或访问的媒体类型
// Name:硬盘名字
// NumberOfBlocks:
// PNPDeviceID:即插即用逻辑设备的播放设备标识符
// PowerManagementCapabilities:
// PowerManagementSupported:
// ProviderName:
// Purpose:
// QuotasDisabled:True
// QuotasIncomplete:False
// QuotasRebuilding:False
// Size:硬盘总大小
// Status:对象的当前状态
// StatusInfo:逻辑设备的状态
// SupportsDiskQuotas:True
// SupportsFileBasedCompression:True
// SystemCreationClassName:Win32_ComputerSystem
// SystemName:DESKTOP-OLA70V5
// VolumeDirty:False
// VolumeName:Windows
// VolumeSerialNumber:硬盘的序列号
/// </summary>
/// <returns></returns>
public static string GetDiskInfo()
{
var disk = new StringBuilder();
var moc = new ManagementClass("Win32_LogicalDisk").GetInstances();
foreach (ManagementObject mo in moc)
{
foreach (var item in mo.Properties)
{
disk.Append($"{item.Name}:{item.Value}\r\n");
}
}
return disk.ToString();
}
View Code
github地址:https://github.com/Dwayne112401/ComputerInfo.git
本文标题为:C# 获取计算机信息(操作系统信息、系统信息、主板、处理器、硬盘、内存、显卡)
- C#验证两个QQ头像相似度的示例代码 2023-05-25
- c# – Oracle实体框架 – 调用自定义函数(EDIT_DISTANCE) 2023-11-13
- C#使用泛型队列Queue实现生产消费模式 2023-07-05
- 微信跳一跳自动脚本C#代码实现 2022-12-02
- C# 使用SharpZipLib生成压缩包的实例代码 2022-12-31
- C#面向对象编程中开闭原则的示例详解 2023-06-21
- C#/.net程序调用Python的教程分享 2023-07-18
- Unity3D实现待机状态图片循环淡入淡出 2023-02-16
- C#集合之列表的用法 2023-05-30
- C#实现将一个字符串进行翻转显示的6种方法 2022-11-28
