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/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
7月前
|
存储 监控 算法
电脑监控管理中的 C# 哈希表进程资源索引算法
哈希表凭借O(1)查询效率、动态增删性能及低内存开销,适配电脑监控系统对进程资源数据的实时索引需求。通过定制哈希函数与链地址法冲突解决,实现高效进程状态追踪与异常预警。
302 10
|
7月前
|
存储 机器学习/深度学习 监控
网络管理监控软件的 C# 区间树性能阈值查询算法
针对网络管理监控软件的高效区间查询需求,本文提出基于区间树的优化方案。传统线性遍历效率低,10万条数据查询超800ms,难以满足实时性要求。区间树以平衡二叉搜索树结构,结合节点最大值剪枝策略,将查询复杂度从O(N)降至O(logN+K),显著提升性能。通过C#实现,支持按指标类型分组建树、增量插入与多维度联合查询,在10万记录下查询耗时仅约2.8ms,内存占用降低35%。测试表明,该方案有效解决高负载场景下的响应延迟问题,助力管理员快速定位异常设备,提升运维效率与系统稳定性。
320 4
|
11月前
|
监控 算法 安全
公司电脑监控软件关键技术探析:C# 环形缓冲区算法的理论与实践
环形缓冲区(Ring Buffer)是企业信息安全管理中电脑监控系统设计的核心数据结构,适用于高并发、高速率与短时有效的多源异构数据处理场景。其通过固定大小的连续内存空间实现闭环存储,具备内存优化、操作高效、数据时效管理和并发支持等优势。文章以C#语言为例,展示了线程安全的环形缓冲区实现,并结合URL访问记录监控应用场景,分析了其在流量削峰、关键数据保护和高性能处理中的适配性。该结构在日志捕获和事件缓冲中表现出色,对提升监控系统效能具有重要价值。
308 1
|
开发框架 .NET API
以C#一分钟浅谈:GraphQL 数据类型与查询
本文从C#开发者的角度介绍了GraphQL的基本概念、核心组件及其实现方法。GraphQL由Facebook开发,允许客户端精确请求所需数据,提高应用性能。文章详细讲解了如何在C#中使用`GraphQL.NET`库创建Schema、配置ASP.NET Core,并讨论了GraphQL的数据类型及常见问题与解决方案。通过本文,C#开发者可以更好地理解并应用GraphQL,构建高效、灵活的API。
368 64
|
存储 监控 算法
员工电脑监控系统中的 C# 链表算法剖析-如何监控员工的电脑
当代企业管理体系中,员工电脑监控已成为一个具有重要研究价值与实践意义的关键议题。随着数字化办公模式的广泛普及,企业亟需确保员工对公司资源的合理利用,维护网络安全环境,并提升整体工作效率。有效的电脑监控手段对于企业实现这些目标具有不可忽视的作用,而这一过程离不开精妙的数据结构与算法作为技术支撑。本文旨在深入探究链表(Linked List)这一经典数据结构在员工电脑监控场景中的具体应用,并通过 C# 编程语言给出详尽的代码实现与解析。
252 5
|
测试技术 C# 数据库
C# 单元测试框架 NUnit 一分钟浅谈
【10月更文挑战第17天】单元测试是软件开发中重要的质量保证手段,NUnit 是一个广泛使用的 .NET 单元测试框架。本文从基础到进阶介绍了 NUnit 的使用方法,包括安装、基本用法、参数化测试、异步测试等,并探讨了常见问题和易错点,旨在帮助开发者有效利用单元测试提高代码质量和开发效率。
830 64
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
272 11
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
277 10
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
992 13
|
开发框架 .NET 测试技术
C# 一分钟浅谈:GraphQL 数据类型与查询
本文介绍了GraphQL的基本概念、数据类型及查询方法,重点从C#角度探讨了GraphQL的应用。通过Hot Chocolate库的实例,展示了如何在ASP.NET Core中实现GraphQL API,包括安装、定义Schema、配置及运行项目。文中还讨论了常见问题与解决方案,旨在帮助开发者更好地理解和使用GraphQL。
242 2