肥龍 發表於 2008-12-26 13:04:52

C# 程式透過 WMI 取得 CPU 序號

C# 程式透過 WMI 取得 CPU 序號
請先加入參考 System.Management
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;
namespace sln_ProcessID
{
      public partial class Form1 : Form
      {
            public Form1()
            {
                  InitializeComponent();
            }

            // 取得( 單/ 多顆) CPU 序號
            private void button1_Click(object sender, EventArgs e)
            {
                  // 指定查詢Processor ( CPU )
                  String strQry = "SELECT * FROM Win32_Processor";

                  // ManagementObjectSearcher 類別, 根據指定的查詢擷取管理物件的集合。
                  ManagementObjectSearcher searcher = new ManagementObjectSearcher(strQry);

                   // 使用Foreach 陳述式存取集合類別中物件(元素)
                  // Get 方法, 叫用指定的WMI 查詢, 並傳回產生的集合。
                  foreach (ManagementObject QryObj in searcher.Get())
                  {
                         // 取得CPU 序號
                        MessageBox.Show(QryObj["ProcessorId"].ToString());
                  }
            }

            // 取得CPU 序號
            private void button2_Click(object sender, EventArgs e)
            {
                  // WMI 名稱空間( Namespace )
                  string strCls = "Win32_Processor";

                  // 指定CPU Index , 第一顆為CPU0
                  // 若有MultiProcessor 則CPU1 , CPU2 ....依此類推
                  string str_CPU_ID = "CPU0";

                  // ManagementObject 類別, 表示WMI 執行個體。
                  ManagementObject objCls = new ManagementObject(strCls + ".DeviceID=" + "\"" + str_CPU_ID + "\"");

                  // 取得CPU 序號
                  MessageBox.Show(objCls.GetPropertyValue("ProcessorId").ToString());
            }
      }
}
頁: [1]
查看完整版本: C# 程式透過 WMI 取得 CPU 序號