C# 获取硬件参数的实现方法
作者:lqh 发布时间:2023-11-04 21:30:38
标签:C#,硬件参数
C# 获取硬件参数的实现方法
示例代码:
private static string GetIdentifier(string wmiClass, string wmiProperty, string wmiMustBeTrue)
{
string result = "";
System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
if (mo[wmiMustBeTrue].ToString() == "True")
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
}
return result;
}
private static string GetIdentifier(string wmiClass, string wmiProperty)
{
string result = "";
System.Management.ManagementClass mc = new System.Management.ManagementClass(wmiClass);
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach (System.Management.ManagementObject mo in moc)
{
//Only get the first one
if (result == "")
{
try
{
result = mo[wmiProperty].ToString();
break;
}
catch
{
}
}
}
return result;
}
// cpu id
GetIdentifier("Win32_Processor", "UniqueId");
//processor id
GetIdentifier("Win32_Processor", "ProcessorId");
//processor name
GetIdentifier("Win32_Processor", "Name");
//Manufacturer
GetIdentifier("Win32_Processor", "Manufacturer");
//BIOS Identifier
private static string GetBiosId()
{
return GetIdentifier("Win32_BIOS", "Manufacturer")
+ GetIdentifier("Win32_BIOS", "SMBIOSBIOSVersion")
+ GetIdentifier("Win32_BIOS", "IdentificationCode")
+ GetIdentifier("Win32_BIOS", "SerialNumber")
+ GetIdentifier("Win32_BIOS", "ReleaseDate")
+ GetIdentifier("Win32_BIOS", "Version");
}
//Main physical hard drive ID
private static string GetDiskId()
{
return GetIdentifier("Win32_DiskDrive", "Model")
+ GetIdentifier("Win32_DiskDrive", "Manufacturer")
+ GetIdentifier("Win32_DiskDrive", "Signature")
+ GetIdentifier("Win32_DiskDrive", "TotalHeads");
}
//Motherboard ID
private static string GetBaseId()
{
return GetIdentifier("Win32_BaseBoard", "Model")
+ GetIdentifier("Win32_BaseBoard", "Manufacturer")
+ GetIdentifier("Win32_BaseBoard", "Name")
+ GetIdentifier("Win32_BaseBoard", "SerialNumber");
}
//Primary video controller ID
private static string GetVideoId()
{
return GetIdentifier("Win32_VideoController", "DriverVersion")
+ GetIdentifier("Win32_VideoController", "Name");
}
//First enabled network card ID
private static string GetMacId()
{
return GetIdentifier("Win32_NetworkAdapterConfiguration", "MACAddress", "IPEnabled");
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/lan_liang/article/details/52554464
0
投稿
猜你喜欢
- 本文以一个非常简单的实例讲述了Winform实现抓取web页面内容的方法,代码简洁易懂,非常实用!分享给大家供大家参考。具体实现代码如下:W
- 前言:最新Servlet 3.0 * 的使用1.pom.xml添加需要使用的依赖<project xmlns="http:/
- Java常用类包装类由于Java语言中的基本类型不是面向对象,并不具备对象的性质,实际使用存在很多不便。Java在java.lang包中提供
- 本文实例讲述了Java实现的求解经典罗马数字和阿拉伯数字相互转换问题。分享给大家供大家参考,具体如下:古罗马帝国开创了辉煌的人类文明,但他们
- 一、首先我们先大致了解一下什么是多线程。(书上的解释)程序是一段静态的代码,它是应用软件的蓝本。进程是程序的一次动态执行过程,对
- java 使用HttpURLConnection发送数据简单实例每个 HttpURLConnection 实例都可用于生成单个请求,但是其他
- 基本步骤三数取中在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。在此我们采用三数取中法,也就是取左端、中间
- 前言很多时候,我们定义接口或者调用别人的接口时,手里只有一份接口文档,文档中提供一段示例json格式的报文,我们需要根据json中的字段,挨
- using System;using System.Collections.Generic;using System.IO;using Sy
- 今天收到了Android Studio3.0更新推送,在升级过程中遇到几个问题,在这里把问题和解决方法记录下,方便要升级的童鞋。如果还有童
- 前言在Spring Boot的自动配置中经常看到@ConditionalOnProperty注解的使用,本篇文章带大家来了解一下该注解的功能
- 最近在做项目时,需要进行音频文件的即时播放,并且要求同时播放多条语音,之前C#程序中语音播放一直使用System.Media类库的Sound
- 异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Ja
- Feign其他功能-超时设置Feign 底层依赖于 Ribbon 实现负载均衡和远程调用。Ribbon默认1秒超时。超时配置:ribbon:
- Java goto语句妙用今天和朋友聊天的时候,无意间聊到了 goto 语句,但是在 Java 中, goto 是保留关键字,但是朋友说 J
- 相关知识:Java中三种简单注解介绍和代码实例一、作用用 @Deprecated注解的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危
- 今天给大家介绍下用Java swing开发一款音乐播放器, * 酷狗音乐播放器,完整源码地址在最下方,本文只列出部分源码,因为源码很多,全部贴
- 前言在讲述线程池的前提 先补充一下连接池的定义连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用可以看到其连接
- 一、堆参数设置-XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志-XX:+UseSerialGC 配置串行回收器
- 本文实例讲述了JAVA中的final关键字用法。分享给大家供大家参考,具体如下:根据上下文环境,java的关键字final也存在着细微的区别