程式設計方式獲取計算機主機板序列號等的實驗
程式碼獲取計算機硬體資訊,程式碼如下
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.