C#編程獲取各種電腦硬件信息的方法示例
本文實(shí)例講述了C#編程獲取各種電腦硬件信息的方法。分享給大家供大家參考,具體如下:
獲取CPU編號(hào):
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):
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):
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):
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)的值。代碼如下:
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======================="; }
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《WinForm控件用法總結(jié)》、《C#常見控件用法教程》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05C#中的不可變數(shù)據(jù)類型介紹(不可變對(duì)象、不可變集合)
這篇文章主要介紹了C#中的不可變數(shù)據(jù)類型介紹(不可變對(duì)象、不可變集合),本文講解了不可變對(duì)象、自定義不可變集合、Net提供的不可變集合、不可變優(yōu)點(diǎn)、不可變對(duì)象缺點(diǎn)等內(nèi)容,需要的朋友可以參考下2015-04-04C# http系列之以form-data方式上傳多個(gè)文件及鍵值對(duì)集合到遠(yuǎn)程服務(wù)器
這篇文章主要介紹了C# http系列之以form-data方式上傳多個(gè)文件及鍵值對(duì)集合到遠(yuǎn)程服務(wù)器,需要的朋友可以參考下2019-08-08C#中使用反射遍歷一個(gè)對(duì)象屬性及值的小技巧
這篇文章主要介紹了C#中使用反射遍歷一個(gè)對(duì)象屬性及值的小技巧,這在很時(shí)候應(yīng)該都非常有用,本文直接給出實(shí)例代碼,需要的朋友可以參考下2015-07-07