using System;
using System.Collections.Generic;
using System.Text;
using System.Management;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
PrintMotherBoardInfo();
Console.WriteLine(GetMotherBoardSerialNumber());
}
/// <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()
{
String SerialNumber = "";
try
{
ManagementClass mc = new ManagementClass("WIN32_BaseBoard");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
SerialNumber= mo["SerialNumber"].ToString();
if(
!string.IsNullOrEmpty(SerialNumber)
&& !SerialNumber.Equals("To be filled by O.E.M") //没有找到
&& !SerialNumber.Contains("O.E.M")
&& !SerialNumber.Contains("OEM")
&& !SerialNumber.Contains("Default")
)
{
break;
}
else
{
Console.WriteLine("默认值");
}
}
}
catch (Exception e)
{
Debug.WriteLine(e);// 无法处理
}
return SerialNumber;
}
//获取CPU ID
public static string GetCPUSerialNumber()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
string sCPUSerialNumber = "";
foreach (ManagementObject mo in searcher.Get())
{
sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();
break;
}
return sCPUSerialNumber;
}
catch
{
return "";
}
}
}
}
参考: