C#获取计算机硬件信息的示例代码

天天代码码天天 2024-10-21 20:23:51编程技术
170

在现代计算机系统中,了解硬件信息对于系统管理、故障排除以及性能优化等方面具有重要意义。C#作为一种广泛使用的编程语言,提供了丰富的API和工具,使得开发人员能够方便地获取计算机硬件信息。本文将通过示例代码,详细介绍如何使用C#来获取计算机的硬件信息,包括处理器、内存、硬盘等关键组件的详细数据。

效果

C#获取计算机硬件信息的示例代码

项目

C#获取计算机硬件信息的示例代码

代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Management;
 
namespace 获取计算机信息
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// 获取计算机硬件信息
        /// </summary>
        /// <param name="path">部件</param>
        /// <param name="key">键值</param>
        /// <returns></returns>
        public string GetComputerHardWareInfo(string path, string key)
        {
            try
            {
                ManagementClass managementClass = new ManagementClass(path);
                ManagementObjectCollection moc = managementClass.GetInstances();
                PropertyDataCollection properties = managementClass.Properties;
                foreach (var property in properties)
                {
                    if (property.Name == key)
                    {
                        foreach (var mo in moc)
                        {
                            return mo.Properties[property.Name].Value.ToString();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //记录异常信息
            }
 
            return string.Empty;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //获取CPU ID
            string CPU_ID = GetComputerHardWareInfo("Win32_Processor", "ProcessorId");
            //获取主板序列号
            string Board_SN = GetComputerHardWareInfo("Win32_BaseBoard", "SerialNumber");
            //获取硬盘序列号
            string Disk_SN = GetComputerHardWareInfo("Win32_DiskDrive", "Model");
            string UUID = GetComputerHardWareInfo("Win32_ComputerSystemProduct", "UUID");
            // 获取机器名
            string MachineName = Environment.MachineName;
            string OSVersion = Environment.OSVersion.VersionString.ToString();
            string UserName = Environment.UserName;
            string OperatingSystem = GetComputerHardWareInfo("Win32_OperatingSystem", "Caption");
 
            StringBuilder sb = new StringBuilder();
            sb.AppendLine(string.Format("CPU_ID:{0}", CPU_ID));
            sb.AppendLine(string.Format("Board_SN:{0}", Board_SN));
            sb.AppendLine(string.Format("Disk_SN:{0}", Disk_SN));
            sb.AppendLine(string.Format("UUID:{0}", UUID));
            sb.AppendLine(string.Format("MachineName:{0}", MachineName));
            sb.AppendLine(string.Format("OSVersion:{0}", OSVersion));
            sb.AppendLine(string.Format("UserName:{0}", UserName));
            sb.AppendLine(string.Format("OperatingSystem:{0}", OperatingSystem));
 
            textBox1.Text = sb.ToString();
        }
 
 
    }
}

总结

通过本文的示例代码,我们展示了如何使用C#获取计算机的硬件信息。从处理器、内存到硬盘,我们覆盖了主要硬件组件的关键数据获取方法。这些技术不仅可以用于系统监控和诊断,还可以为性能优化和资源管理提供重要参考。掌握这些技能,将使您在日常开发和系统管理中更加得心应手。希望本文的内容对您有所帮助,并激发您进一步探索硬件信息获取的更多可能性。

C# 计算机 硬件信息
THE END
战地网
频繁记录吧,生活的本意是开心

相关推荐

MegaSaM:谷歌DeepMind推出的相机跟踪和景深估计技术
MegaSaM是一个创新的计算机视觉技术,由谷歌深度学习团队和多所大学的研究人员联合开发。该技术旨在从动态场景的单目视频中准确、快速且稳健地估计相机参数和深度图。MegaSaM...
2024-12-25 新闻资讯
161

一文搞懂计算机存储单位Byte、KB、MB、GB和TB的关系及换算方法
在计算机科学和信息技术的世界里,数据存储和处理是至关重要的。为了更好地理解和管理数据,我们需要了解计算机存储单位的概念及其之间的关系。本文ZHANID工具网将详细介绍By...
2024-12-20 电脑知识
162

C#实现美国东部时间与北京时间相互转换的示例代码详解
在C#编程中,处理日期和时间是一项常见的任务。特别是在涉及跨时区的情况下,如将美国东部时间(ET)转换为北京时间(BJT),或者相反,需要对时区偏移量、夏令时等因素进行准确的...
2024-12-20 编程技术
152

C#编程中的命名空间(Namespace)使用方法详解
在C#编程中,命名空间(Namespace)是一个重要的概念,它用于组织代码,避免命名冲突,并提高代码的可读性和可维护性。通过合理使用命名空间,开发者可以更好地组织和管理大型项...
2024-12-18 编程技术
153

C#使用iTextSharp库将图片转换为PDF的步骤及实例代码解析
在现代软件开发中,将图片转换为PDF文档是一种常见需求,特别是在处理电子文档、报告生成和数据存储等场景中。iTextSharp是一个功能强大的开源库,专门用于在.NET环境中创建和...
2024-12-14 编程技术
162

C# 中图片与 Base64 字符串的互转技巧
本文将详细介绍如何在C#中将图片转换为Base64字符串,以及如何将Base64字符串转换回图片。我们将探讨两种方法:一种依赖于System.Drawing命名空间,另一种则不依赖于该命名空...
2024-12-09 编程技术
191