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());
- }
- }
- }
複製代碼 |