برای Query دوم من یادم رفت شما باید ProcessorID رو به جای SerialNumber بنویسید.به این شکل :
MessageBox.Show(mo["ProcessorID"].ToString());
برای تولید این کد 20 رقمی هم می تونید به این روش عمل کنید :
string strMB="", strCPU="";
ManagementObjectCollection mblist = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
mblist=mbs.Get();
foreach (ManagementObject mo in mblist)
{
//MessageBox.Show(mo["Manufacturer"].ToString());
strMB = mo["SerialNumber"].ToString();
}
ManagementObjectCollection cpulist = null;
ManagementObjectSearcher cpu = new ManagementObjectSearcher("Select * from Win32_Processor");
cpulist = cpu.Get();
foreach (ManagementObject mo in cpulist)
{
//MessageBox.Show(mo["Manufacturer"].ToString());
strCPU = mo["ProcessorID"].ToString();
}
MessageBox.Show(strMB + " " + strCPU);