日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号

發(fā)布時(shí)間:2025/3/21 C# 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C#獲取電腦硬件信息(CPU ID、主板ID、硬盤ID、BIOS編號(hào)

http://www.cnblogs.com/liufei88866/archive/2010/05/11/1732671.html?

?

最近學(xué)習(xí)過程中,想到提取系統(tǒng)硬件信息做一些驗(yàn)證,故而對(duì)網(wǎng)上提到的利用.NET System.Management類獲取硬件信息做了進(jìn)一步的學(xué)習(xí)、驗(yàn)證。驗(yàn)證是分別在4臺(tái)電腦,XP SP3系統(tǒng)中進(jìn)行,特將驗(yàn)證過程記錄于此。

????說明:

電腦1(聯(lián)想品牌電腦);

電腦2(HP品牌電腦);

電腦3(聯(lián)想品牌電腦);

電腦4(兼容機(jī));

獲取CPU編號(hào):
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_Processor");??
ManagementObjectCollection moc = mc.GetInstances();??
string strID = null ;????
foreach( ManagementObject mo in moc )????
{????
?strID = mo.Properties["ProcessorId"].Value.ToString();??
?break;???
}??????????????
textBox1.Text +=??"CPU ID:" + strID;?
????????????ManagementClass mc = new ManagementClass("Win32_Processor");
????????????ManagementObjectCollection moc = mc.GetInstances();
????????????string strID = null ;?
????????????foreach( ManagementObject mo in moc )?
????????????{?
?????????????strID = mo.Properties["ProcessorId"].Value.ToString();
?????????????break;
????????????}???????????
????????????textBox1.Text +=??"CPU ID:" + strID;

?????返回結(jié)果:

????????電腦1:CPU ID:BFEBFBFF00000F27

????????電腦2:CPU ID:BFEBFBFF00000F27

????????電腦3:CPU ID:BFEBFBFF00000F29

????????電腦4:CPU ID:BFEBFBFF00000F29

獲取主板編號(hào):
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_BaseBoard");??
ManagementObjectCollection moc = mc.GetInstances();??
string strID = null ;????
foreach( ManagementObject mo in moc )????
{????
?strID = mo.Properties["SerialNumber"].Value.ToString();??
?break;???
}??????????????
textBox1.Text +=??"主板 ID:" + strID;?
????????????ManagementClass mc = new ManagementClass("Win32_BaseBoard");
????????????ManagementObjectCollection moc = mc.GetInstances();
????????????string strID = null ;?
????????????foreach( ManagementObject mo in moc )?
????????????{?
?????????????strID = mo.Properties["SerialNumber"].Value.ToString();
?????????????break;
????????????}???????????
????????????textBox1.Text +=??"主板 ID:" + strID;


??????返回結(jié)果:

????????電腦1:主板 ID:

????????電腦2:主板 ID:CN24401483

????????電腦3:主板 ID:AZF241001101

????????電腦4:主板 ID:


?

獲取硬盤編號(hào):
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");??
//網(wǎng)上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive獲得的硬盤信息中并不包含SerialNumber屬性。??
ManagementObjectCollection moc = mc.GetInstances();??
string strID = null ;????
foreach( ManagementObject mo in moc )????
{????
?strID = mo.Properties["SerialNumber"].Value.ToString();??
?break;???
}??????????????
textBox1.Text +=??"硬盤 ID:" + strID;?
????????????ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
????????????//網(wǎng)上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive獲得的硬盤信息中并不包含SerialNumber屬性。
????????????ManagementObjectCollection moc = mc.GetInstances();
????????????string strID = null ;?
????????????foreach( ManagementObject mo in moc )?
????????????{?
?????????????strID = mo.Properties["SerialNumber"].Value.ToString();
?????????????break;
????????????}???????????
????????????textBox1.Text +=??"硬盤 ID:" + strID;


??????返回結(jié)果:

????????電腦1:硬盤 ID:4833395344463658202020202020202020202020

????????電腦2:硬盤 ID:WD-WMAJD1092385

????????電腦3:硬盤 ID:4a353756354d5939202020202020202020202020

????????電腦4:硬盤 ID:0637J2FW508014


獲取BIOS編號(hào):
view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_BIOS");??
ManagementObjectCollection moc = mc.GetInstances();??
string strID = null ;????
foreach( ManagementObject mo in moc )????
{????
?strID = mo.Properties["SerialNumber"].Value.ToString();??
?break;???
}??????????????
textBox1.Text +=??"BIOS ID:" + strID;?
????????????ManagementClass mc = new ManagementClass("Win32_BIOS");
????????????ManagementObjectCollection moc = mc.GetInstances();
????????????string strID = null ;?
????????????foreach( ManagementObject mo in moc )?
????????????{?
?????????????strID = mo.Properties["SerialNumber"].Value.ToString();
?????????????break;
????????????}???????????
????????????textBox1.Text +=??"BIOS ID:" + strID;


?????返回結(jié)果:

????????電腦1:BIOS ID:?

????????電腦2:BIOS ID:CN24401483

????????電腦3:BIOS ID:

????????電腦4:BIOS ID:

?


????總結(jié):

????由以上各步看出,通過Win32_Processor獲取CPUID不正確,或者說Win32_Processor字段就不包含CPU編號(hào)信息。

????通過Win32_BaseBoard獲取主板信息,但不是所有的主板都有編號(hào),或者說不是能獲取所有系統(tǒng)主板的編號(hào)。

????通過Win32_PhysicalMedia獲取硬盤編號(hào)應(yīng)該沒有問題。但網(wǎng)上說可以通過Win32_DiskDrive獲取,其實(shí)所得信息根本不包含SerialNumber。

????通過Win32_BIOS獲取BIOS信息,基本和獲取主板信息差不多。就是說:不是所有的主板BIOS信息都有編號(hào)。


????另外,可以將通過以上各字段所得信息輸出,逐個(gè)查看所有信息 屬性和對(duì)應(yīng)的值。代碼如下:

view plaincopy to clipboardprint?
ManagementClass mc = new ManagementClass("Win32_Processor");??
ManagementObjectCollection moc = mc.GetInstances();???
foreach( ManagementObject mo in moc )????
{????
?textBox1.Text += "\r\n============CUP信息===========";??
?foreach (PropertyData pd in mo.Properties)??
?{??
?????textBox1.Text += "\r\n" + pd.Name + "\t";??
?????if (pd.Value != null)??
?????{??
?????????textBox1.Text += pd.Value.ToString();??
?????}??
?}??
?textBox1.Text += "\r\n\r\n=======================";??

}???

posted on 2010-08-26 22:03 djlzxzy 閱讀(...) 評(píng)論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/djlzxzy/archive/2010/08/26/1809532.html

總結(jié)

以上是生活随笔為你收集整理的C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。