C#如何编程方式获取计算机主板序列号、CPU ID

using System;
using System.Collections.Generic;
using System.Text;
using System.Management;
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            PrintMotherBoardInfo();
            Console.WriteLine(GetMotherBoardSerialNumber());
        }
        /// <summary>
        /// 打印主板信息
        /// </summary>
        private static void PrintMotherBoardInfo()
        {
            ManagementClass mc = new ManagementClass("WIN32_BaseBoard");
            ManagementObjectCollection moc = mc.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                foreach (PropertyData pd in mo.Properties)
                {
                    Console.WriteLine(string.Format("{0}{1}{2}",pd.Name,"/t", pd.Value));
                }
            }
        }
        //获取主板序号
        private static string GetMotherBoardSerialNumber()
        {
			String SerialNumber = "";
			try
			{
				ManagementClass mc = new ManagementClass("WIN32_BaseBoard");
				ManagementObjectCollection moc = mc.GetInstances();
				foreach (ManagementObject mo in moc)
				{
					SerialNumber= mo["SerialNumber"].ToString();
					if(
						!string.IsNullOrEmpty(SerialNumber)
						&& !SerialNumber.Equals("To be filled by O.E.M") //没有找到
						&& !SerialNumber.Contains("O.E.M")
						&& !SerialNumber.Contains("OEM")
						&& !SerialNumber.Contains("Default")
					)
					{
						break;
					}
					else
					{
						Console.WriteLine("默认值");
					}
	            }
			}
			catch (Exception e)
			{
				Debug.WriteLine(e);// 无法处理
			}
			return SerialNumber;
        }
        //获取CPU ID
        public static string GetCPUSerialNumber()
        {
            try
            {
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
                string sCPUSerialNumber = "";
                foreach (ManagementObject mo in searcher.Get())
                {
                    sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();
                    break;
                }
                return sCPUSerialNumber;
            }
            catch
            {
                return "";
            }
        }
    }
}

参考:

C#如何编程方式获取计算机主板序列号

C# 获取 PC 序列号的方法示例

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值