C#编程获取各种电脑硬件信息的方法示例

作者:dodo-yufan 时间:2022-09-17 09:38:39 

本文实例讲述了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#程序设计有所帮助。

标签:C#,硬件信息
0
投稿

猜你喜欢

  • 聊聊java中引用数据类型有哪些

    2022-01-10 11:59:10
  • 相对路径和绝对路径的写法总结

    2022-06-17 07:38:47
  • Android获取设备CPU核数、时钟频率以及内存大小的方法

    2022-09-13 07:09:32
  • autojs模仿QQ长按弹窗菜单实现示例详解二

    2022-10-20 07:04:37
  • Java利用Sping框架编写RPC远程过程调用服务的教程

    2022-08-14 01:59:40
  • C++实现俄罗斯方块源码

    2023-06-27 23:49:14
  • 基于Springboot一个注解搞定数据字典的实践方案

    2022-12-23 01:12:38
  • Java轻松掌握面向对象的三大特性封装与继承和多态

    2021-07-27 02:39:11
  • java实现学生成绩档案管理系统

    2023-06-29 22:48:43
  • shiro整合springboot前后端分离

    2022-02-22 10:40:31
  • Spring框架中一个有用的小组件之Spring Retry组件详解

    2021-05-27 10:07:40
  • C#实现多线程下载文件的方法

    2022-04-24 10:59:43
  • C#分布式事务的超时处理实例分析

    2022-06-16 03:11:28
  • Java8如何使用Lambda表达式简化代码详解

    2023-02-20 04:44:58
  • Android WebView使用的技巧与一些坑

    2022-10-18 12:57:23
  • Java NIO框架Netty简单使用的示例

    2022-09-08 02:51:27
  • SpringBoot注册Servlet的三种方法详解

    2022-06-15 15:56:29
  • Spring Cloud gateway 网关如何拦截Post请求日志

    2022-06-19 03:19:46
  • C#操作XML方法详解

    2022-11-10 21:21:14
  • Java实现聊天室界面

    2023-12-15 10:43:32
  • asp之家 软件编程 m.aspxhome.com