在開發程式時,有時需要知道部份的硬體資訊等,像是ProcessId的編號、System Name等,可以利用System Manager的查詢來取得其內容。底下是可查詢到的資料
AddressWidth:64
Architecture:9
Availability:3
Caption:Intel64 Family 6 Model 58 Stepping 9
CpuStatus:1
CreationClassName:Win32_Processor
CurrentClockSpeed:3601
CurrentVoltage:11
DataWidth:64
Description:Intel64 Family 6 Model 58 Stepping 9
DeviceID:CPU0
ExtClock:100
Family:198
L2CacheSize:1024
L3CacheSize:6144
L3CacheSpeed:0
Level:6
LoadPercentage:4
Manufacturer:GenuineIntel
MaxClockSpeed:3601
Name:Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
NumberOfCores:4
NumberOfLogicalProcessors:4
PowerManagementSupported:False
Processor序號:BFEBFBCF001306A9
ProcessorType:3
Revision:14857
Role:CPU
SocketDesignation:Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
Status:OK
StatusInfo:3
SystemCreationClassName:Win32_ComputerSystem
SystemName:MyPC
UpgradeMethod:1
Version:
ProcessId的序號並非唯一而且一定取的到的,如果需要唯一值,建議可以使用Mac Address會比較好。
在使用時System.Manager需要被參考
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            
            try
            {
               
                ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
                foreach (ManagementObject managementObject in searcher.Get())
                {
                    foreach (PropertyData property in managementObject.Properties)
                    {
                        if (property.Value == null)
                            continue;
                        if (property.Name.ToLower() == "ProcessorId".ToLower())   
                            Console.WriteLine("Processor序號:"+property.Value.ToString());
                        else
                            Console.WriteLine(property.Name+":"+property.Value.ToString());
                    }
                }
               
            }
            catch (Exception ex)
            {
                Console.Write(ex);
            }
            Console.Read();
        }
    }
}
取得Mac Address
            string mac= "";
            NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
            //for each j you can get the MAC ,nics[0]第一張網卡,1則為第二張網卡
            PhysicalAddress address = nics[0].GetPhysicalAddress();
            byte[] bytes = address.GetAddressBytes();
            for (int i = 0; i < bytes.Length; i++)
            {
                // Display the physical address in hexadecimal.
                mac+=bytes[i].ToString("X2");
                // Insert a hyphen after each byte, unless we are at the end of the
                // address.
                if (i != bytes.Length - 1)
                {
                    mac+= ("-");
                }
            }
            Console.WriteLine(mac);
					
