编程方式获取计算机主板序列号等的实验

来源:互联网 发布:k均值聚类算法 编辑:程序博客网 时间:2024/05/18 17:03


代码获取计算机硬件信息,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using   System.Management; 
using   Microsoft.Win32; 


namespace GetHardDiskID_BIOSNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            //PrintMotherBoardInfo();
            Console.WriteLine("主板序号:" + GetMotherBoardSerialNumber());
            Console.WriteLine("CPU序列号代码:"+GetCPUMessage());
            Console.WriteLine("网卡硬件地址"+GetMacMessage());
            GetHardMessage();
            Console.Read();


        }

        /// <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()
        {
            ManagementClass mc = new ManagementClass("WIN32_BaseBoard");
            ManagementObjectCollection moc = mc.GetInstances();
            string SerialNumber = "";
            foreach (ManagementObject mo in moc)
            {
                SerialNumber = mo["SerialNumber"].ToString();
                break;
            }
            return SerialNumber;
        }

        //获取CPU序列号代码
        private static string GetCPUMessage()
        {
            string cpuInfo = "";//cpu序列号
            ManagementClass cimobject = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = cimobject.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
            }
            return cpuInfo;
        }
        //获取网卡硬件地址MAC address
        private static string GetMacMessage()
        {
            ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc = mc.GetInstances();
            string MsNo = "";
            foreach (ManagementObject mo in moc)
            {
                if ((bool)mo["IPEnabled"] == true)
                    MsNo = mo["MacAddress"].ToString();
                mo.Dispose();
            }
            return MsNo;
        }


        //获取硬盘ID
        private static void GetHardMessage()
        {
            string HDid = "";
            ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moc = cimobject.GetInstances();
            foreach (ManagementObject mo in moc)
            {
                HDid = (string)mo.Properties["Model"].Value;
                Console.WriteLine("硬盘ID:" + HDid);
            }


            //return HDid;
        }


    }
}

测试机器:

3台型号相同的联想笔记本


测试 结果

1.

主板序号:1ZH3B1359MY
CPU序列号代码:BFEBFBFF00020655
网卡硬件地址88:9F:FA:FD:02:89
硬盘ID:WDC WD3200BEVT-08A23T1


2.

主板序号:1ZH3B13S2LN
CPU序列号代码:BFEBFBFF00020655
网卡硬件地址88:9F:FA:FD:7D:C2
硬盘ID:WDC WD3200BEVT-08A23T1 ATA Device
硬盘ID:Generic- Multi-Card USB Device


3.


原创粉丝点击