French

French - 技术经验
澄其心, 断其欲, 方能悟道
  1. 首页
  2. 编程语言
  3. C#
  4. 正文

使用C# 获取CPU, 硬盘, 内存, 主板等硬件编码

2021-01-29 1754点热度 0人点赞 0条评论

需要使用到的包

System.Management

注意: Cpu在同一型号下, 编码一致!!!

代码如下:

using System.Management;

namespace Test
{
    class MachineCode
    {
        /// <summary>
        /// 获取CPU的硬件编码
        /// </summary>
        /// <returns>CPU编码</returns>
        public static string GetCpuCode()
        {
            string CpuCode = null;
            ManagementClass CpuInfo = new ManagementClass("Win32_Processor");
            foreach (ManagementObject i in CpuInfo.GetInstances())
            {
                CpuCode += i.Properties["ProcessorId"].Value.ToString().Replace(" ", "");
            }
            return CpuCode;
        }

        /// <summary>
        /// 获取硬盘的硬件编码
        /// </summary>
        /// <returns>硬盘编码</returns>
        public static string GetDiskCode()
        {
            string DiskCode = null;
            ManagementClass DiskInfo = new ManagementClass("Win32_DiskDrive");
            foreach (ManagementObject i in DiskInfo.GetInstances())
            {
                DiskCode += i.Properties["SerialNumber"].Value.ToString().Replace(" ", "");
            }
            return DiskCode;
        }

        /// <summary>
        /// 获取内存的硬件编码
        /// </summary>
        /// <returns>内存编码</returns>
        public static string GetRamCode()
        {
            string RamCode = null;
            ManagementClass RamInfo = new ManagementClass("Win32_PhysicalMemory");
            foreach (ManagementObject i in RamInfo.GetInstances())
            {
                RamCode += i.Properties["PartNumber"].Value.ToString().Replace(" ", "");
            }
            return RamCode;
        }

        /// <summary>
        /// 获取主板的硬件编码
        /// </summary>
        /// <returns>主板编码</returns>
        public static string GetMotherboardCode()
        {
            string MotherboardCode = null;
            ManagementClass MotherboardInfo = new ManagementClass("Win32_BaseBoard");
            foreach(ManagementObject i in MotherboardInfo.GetInstances())
            {
                MotherboardCode += i.Properties["SerialNumber"].Value.ToString();
            }
            return MotherboardCode;
        }
    }
}

运行结果:

 

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2021-02-19

French

这个人很懒,什么都没留下

打赏 点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2018-2024 French. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备2022008471号-1

川公网安备 51130202000393号