C#编程获取各种电脑硬件信息的方法示例
作者:dodo-yufan 发布时间:2022-09-17 09:38:39
标签:C#,硬件信息
本文实例讲述了C#编程获取各种电脑硬件信息的方法。分享给大家供大家参考,具体如下:
获取CPU编号:
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
textBox1.Text += "CPU ID:" + strID;
返回结果:
电脑1:CPU ID:BFEBFBFF00000F27
电脑2:CPU ID:BFEBFBFF00000F27
电脑3:CPU ID:BFEBFBFF00000F29
电脑4:CPU ID:BFEBFBFF00000F29
获取主板编号:
ManagementClass mc = new ManagementClass("Win32_BaseBoard");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "主板 ID:" + strID;
返回结果:
电脑1:主板 ID:
电脑2:主板 ID:CN24401483
电脑3:主板 ID:AZF241001101
电脑4:主板 ID:
获取硬盘编号:
ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
//网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "硬盘 ID:" + strID;
返回结果:
电脑1:硬盘 ID:4833395344463658202020202020202020202020
电脑2:硬盘 ID:WD-WMAJD1092385
电脑3:硬盘 ID:4a353756354d5939202020202020202020202020
电脑4:硬盘 ID:0637J2FW508014
获取BIOS编号:
ManagementClass mc = new ManagementClass("Win32_BIOS");
ManagementObjectCollection moc = mc.GetInstances();
string strID = null ;
foreach( ManagementObject mo in moc )
{
strID = mo.Properties["SerialNumber"].Value.ToString();
break;
}
textBox1.Text += "BIOS ID:" + strID;
返回结果:
电脑1:BIOS ID:
电脑2:BIOS ID:CN24401483
电脑3:BIOS ID:
电脑4:BIOS ID:
总结:
由以上各步看出,通过Win32_Processor获取CPUID不正确,或者说Win32_Processor字段就不包含CPU编号信息。
通过Win32_BaseBoard获取主板信息,但不是所有的主板都有编号,或者说不是能获取所有系统主板的编号。
通过Win32_PhysicalMedia获取硬盘编号应该没有问题。但网上说可以通过Win32_DiskDrive获取,其实所得信息根本不包含SerialNumber。
通过Win32_BIOS获取BIOS信息,基本和获取主板信息差不多。就是说:不是所有的主板BIOS信息都有编号。
另外,可以将通过以上各字段所得信息输出,逐个查看所有信息 属性和对应的值。代码如下:
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach( ManagementObject mo in moc )
{
textBox1.Text += "\r\n============CUP信息===========";
foreach (PropertyData pd in mo.Properties)
{
textBox1.Text += "\r\n" + pd.Name + "\t";
if (pd.Value != null)
{
textBox1.Text += pd.Value.ToString();
}
}
textBox1.Text += "\r\n\r\n=======================";
}
希望本文所述对大家C#程序设计有所帮助。


猜你喜欢
- 实例如下:package com.huad.luck;import java.util.ArrayList;import java.util
- 推荐idea2022最新激活教程:idea2021最新激活方法https://www.jb51.net/article/197138.htm
- 1、maven是什么,为什么存在?项目结构是什么样子,怎么定位jar官方网站说了好多,整的多复杂一样,简单说:maven是一个管理包的工具。
- 摘要:vs2019新鲜出炉,配置opencv又有哪些不一样呢,这个教程将会一步一步的教你如何配置opencv和跑动opencv一个简单的项目
- 其实以前我对Java的Struts框架没有具体认识,通过这篇文章,真的让我了解了框架的用处,好处。下拉框在Web开发中经常会使用到,下面我们
- 一、回传协议接口和TCP方式实现:1.接口:import java.nio.channels.SelectionKey; import ja
- 这篇文章主要介绍了配置springboot项目使用外部tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作
- 软硬件环境Macbook Pro MGX 72Android studio 2.1.2Android 5.1.1前言上一篇介绍了如何获取et
- 本文实例讲述了C#实现闪动托盘图标效果的方法。分享给大家供大家参考,具体如下:在用户正在登录QQ或者使用Firemail邮件系统自动收取邮件
- 前言什么时候需要重处理?在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为
- 容器适配器我们可以看出,栈中没有空间配置器(内存池),而是适配器适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目
- 本文实例讲述了C#实现为一张大尺寸图片创建缩略图的方法。分享给大家供大家参考。具体实现方法如下:public static Bitmap C
- 开放端口安全组没开放端口是原罪!!!导致好多BUG费时费力。Hbase悄悄 * 的用了好多端口,比如被我抓到的42239,直接搜索报错药不对症
- /// <summary>/// 计算日期的间隔(静态类)/// </summary>public static c
- 在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具
- 突然心血来潮,想自己做个小程序玩玩,但是怎么把他做成一个exe文件,让大家能够更好的理解和使用呢,百度了一下,说是需要exe4j来生成,但是
- 简介本文用示例介绍SpringBoot如何向容器注册bean(即:将对象加入容器)。法1:@Component(@Controller/@S
- 本文实例总结了.net与javascript脚本的交互方法,分享给大家供大家参考。具体方法如下:1.asp.net呼叫jsResponse.
- 一个非常简单的登录权限 * ,具体代码如下:以下代码是继承OncePerRequestFilter实现登录过滤的代码:/** * * @
- 之前看到过一个数字进度条,一直想写,今天就把这个实现下,想起来也是很简单的,先看下实现的效果:思路:绘制2根线 绘制进度条的文字,不断的改变