﻿# 如何用 C# 取得 CPU 序號

取得 CPU 序號可以用來辨識用戶端電腦的唯一性，因為通常 CPU 不會壞也不常換。

1\. 專案請先加入參考 System.Management

2\. 透過 ManagementObjectSearcher 查詢

* * *

using System;

using System.Collections.Generic;

using System.Text;

using System.Management;

namespace GetCPUID

{

    class Program

    {

        /// <summary>

        /// 取得所有 CPU 序號

        /// </summary>

        /// <param name="args"></param>

        static void Main(string\[\] args)

        {

            // 透過 ManagementObjectSearcher 類別用類似 SQL 的語法查詢

            ManagementObjectSearcher wmiSearcher   
                        = new ManagementObjectSearcher("SELECT \* FROM Win32\_Processor");

            int i = 0;

            // 使用 ManagementObjectSearcher 的 Get 方法取得所有集合

            foreach (ManagementObject obj in wmiSearcher.Get())

            {

                // 取得CPU 序號

                Console.WriteLine("CPU{0} ID:\\t{1}", i++, obj\["ProcessorId"\].ToString());

            }

            // 或透過 ManagementObject 類別直接存取特定 CPU 序號

            //ManagementObject wmiObj = new ManagementObject("Win32\_Processor.DeviceID='CPU0'");

            //Console.WriteLine("CPU{0} ID:\\t{1}", 0, wmiObj.GetPropertyValue("ProcessorId").ToString());

            Console.ReadKey();

        }

    }

}

* * *

**相關連結**

-   [How To Get Hardware Information (CPU ID, MainBoard Info, Hard Disk Serial, System Information , ...)](http://www.codeproject.com/KB/system/GetHardwareInformation.aspx)
