c# 获取电脑硬件信息通用查询类[测试通过]

简介: C#获取电脑硬件信息通用类[Computer]代码展示和分析,简介如下: 1.项目中添加System.Management引用。 2.添加类Computer,把下面代码全选,复制,粘贴。 3.使用方法new Computer().GetComputerName()。

C#获取电脑硬件信息通用类[Computer]代码展示和分析,简介如下:

1.项目中添加System.Management引用。

2.添加类Computer,把下面代码全选,复制,粘贴。

3.使用方法new Computer().GetComputerName()。

 

代码
 
  
using System;
using System.Management; // 添加System.Management引用

public class Computer
{
public string CpuID;
public string MacAddress;
public string DiskID;
public string IpAddress;
public string LoginUserName;
public string ComputerName;
public string SystemType;
public string TotalPhysicalMemory; // 单位:M
private static Computer _instance;
public static Computer Instance()
{
if (_instance == null )
_instance
= new Computer();
return _instance;
}
/// <summary>
/// 构造函数
/// </summary>
public Computer()
{
CpuID
= GetCpuID();
MacAddress
= GetMacAddress();
DiskID
= GetDiskID();
IpAddress
= GetIPAddress();
LoginUserName
= GetUserName();
SystemType
= GetSystemType();
TotalPhysicalMemory
= GetTotalPhysicalMemory();
ComputerName
= GetComputerName();
}
/// <summary>
/// 获取cpu序列号
/// </summary>
/// <returns></returns>
public string GetCpuID()
{
try
{
// 获取CPU序列号代码
string cpuInfo = "" ; // cpu序列号
ManagementClass mc = new ManagementClass( " Win32_Processor " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
cpuInfo
= mo.Properties[ " ProcessorId " ].Value.ToString();
}
moc
= null ;
mc
= null ;
return cpuInfo;
}
catch
{
return " unknow " ;
}
}
/// <summary>
/// 获取网卡硬件地址
/// </summary>
/// <returns></returns>
public string GetMacAddress()
{
try
{
// 获取网卡硬件地址
string mac = "" ;
ManagementClass mc
= new ManagementClass( " Win32_NetworkAdapterConfiguration " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (( bool )mo[ " IPEnabled " ] == true )
{
mac
= mo[ " MacAddress " ].ToString();
break ;
}
}
moc
= null ;
mc
= null ;
return mac;
}
catch
{
return " unknow " ;
}
}
/// <summary>
/// 获取IP地址
/// </summary>
/// <returns></returns>
public string GetIPAddress()
{
try
{
// 获取IP地址
string st = "" ;
ManagementClass mc
= new ManagementClass( " Win32_NetworkAdapterConfiguration " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (( bool )mo[ " IPEnabled " ] == true )
{
// st=mo["IpAddress"].ToString();
System.Array ar;
ar
= (System.Array)(mo.Properties[ " IpAddress " ].Value);
st
= ar.GetValue( 0 ).ToString();
break ;
}
}
moc
= null ;
mc
= null ;
return st;
}
catch
{
return " unknow " ;
}
}
/// <summary>
/// 获取硬盘ID
/// </summary>
/// <returns></returns>
public string GetDiskID()
{
try
{
// 获取硬盘ID
String HDid = "" ;
ManagementClass mc
= new ManagementClass( " Win32_DiskDrive " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
HDid
= ( string )mo.Properties[ " Model " ].Value;
}
moc
= null ;
mc
= null ;
return HDid;
}
catch
{
return " unknow " ;
}
}

/// <summary>
/// 操作系统的登录用户名
/// </summary>
/// <returns></returns>
public string GetUserName()
{
try
{
string st = "" ;
ManagementClass mc
= new ManagementClass( " Win32_ComputerSystem " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st
= mo[ " UserName " ].ToString();
}
moc
= null ;
mc
= null ;
return st;
}
catch
{
return " unknow " ;
}
}


/// <summary>
/// PC类型
/// </summary>
/// <returns></returns>
public string GetSystemType()
{
try
{
string st = "" ;
ManagementClass mc
= new ManagementClass( " Win32_ComputerSystem " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st
= mo[ " SystemType " ].ToString();
}
moc
= null ;
mc
= null ;
return st;
}
catch
{
return " unknow " ;
}
}

/// <summary>
/// 物理内存
/// </summary>
/// <returns></returns>
public string GetTotalPhysicalMemory()
{
try
{
string st = "" ;
ManagementClass mc
= new ManagementClass( " Win32_ComputerSystem " );
ManagementObjectCollection moc
= mc.GetInstances();
foreach (ManagementObject mo in moc)
{
st
= mo[ " TotalPhysicalMemory " ].ToString();
}
moc
= null ;
mc
= null ;
return st;
}
catch
{
return " unknow " ;
}
}
/// <summary>
/// 电脑名称
/// </summary>
/// <returns></returns>
public string GetComputerName()
{
try
{
return System.Environment.GetEnvironmentVariable( " ComputerName " );
}
catch
{
return " unknow " ;
}
}
}

 

img_fa0be433d68c8212b2b0b3b1a564ccb1.png
如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏 微信打赏
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
关注公众号: img_9bde0f31ac4a0eca10b1bd7414b78faf.png


作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
1月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
61 2
|
20天前
|
测试技术 C# 开发工具
C# 标准性能测试
本文介绍如何使用 BenchmarkDotNet 工具进行性能测试。通过 GitHub 代码示例展示如何安装并应用此工具,对函数或静态方法进行精确的性能分析。首先需通过 NuGet 安装 BenchmarkDotNet,然后在测试函数上添加 `[Benchmark]` 特性,并使用 `BenchmarkRunner.Run&lt;&gt;();` 进行测试。测试过程中包括 Pilot、Warmup 和 Target 等阶段,并提供 Mean、Error 和 StdDev 等统计信息。
19 3
C# 标准性能测试
|
7天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
26天前
|
开发框架 自然语言处理 .NET
C#一分钟浅谈:LINQ 查询表达式的使用技巧
【9月更文挑战第6天】LINQ(Language Integrated Query)是C#开发中的强大工具,使查询数据集合变得简单且接近自然语言。本文从基础入手,通过具体示例讲解LINQ查询表达式的使用技巧,包括过滤、排序和分组等操作。同时,文章还探讨了常见问题及解决方法,如性能优化、过早枚举和类型转换等,帮助开发者写出更高效、易维护的代码。
58 15
|
1月前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
16 2
|
2月前
|
测试技术 API 开发者
Python 魔法:打造你的第一个天气查询小工具自动化测试框架的构建与实践
【8月更文挑战第31天】在这篇文章中,我们将一起踏上编程的奇妙旅程。想象一下,只需几行代码,就能让计算机告诉你明天是否要带伞。是的,你没有听错,我们将用Python这把钥匙,解锁天气预报的秘密。不论你是编程新手还是想拓展技能的老手,这篇文章都会为你带来新的视角和灵感。所以,拿起你的键盘,让我们一起创造属于自己的天气小工具吧!
|
2月前
|
JSON 测试技术 数据格式
单元测试问题之使用JCode5插件生成测试类如何解决
单元测试问题之使用JCode5插件生成测试类如何解决
68 3
|
2月前
|
Java 测试技术 Spring
单元测试问题之在 JCode5 类中使用 testService如何解决
单元测试问题之在 JCode5 类中使用 testService如何解决
13 2
|
2月前
|
网络协议 网络安全 Python
电脑中 TCP/UDP 端口是否开放的测试:令人意想不到的神奇策略等你发现!
【8月更文挑战第19天】在网络管理和维护中,常需确认TCP/UDP端口是否开放以确保服务运行顺畅。端口如同计算机对外通信的“门”,TCP提供可靠连接,UDP则快速但无连接。测试端口是否开放的方法多样:可用`telnet`测试TCP端口,如`telnet localhost 80`;UDP测试较复杂,可用`nc`工具,如`nc -u -z localhost 53`。此外,也有在线工具可供选择,但需确保其安全性。
49 1
|
2月前
|
网络协议 Windows
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!
在电脑上测试TCP/UDP端口是否开放,还是得网络大佬这招厉害!