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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

获取计算机中的硬件信息

發(fā)布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取计算机中的硬件信息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在項目開發(fā)過程中,經(jīng)常會需要讀取所在計算機的硬件信息,包括CPU的序列號,主板的序列號,硬盤的序列號,MAC地址,IP地址,用戶名,系統(tǒng)類型,計算機名稱,操作系統(tǒng)類型,物理內(nèi)存大小,BIOS內(nèi)容等。

開發(fā)環(huán)境:VS2005 ? .NET2.0

項目工程文件:Computer.zip??

/*****************************************************************/ /* 作者:虞曉杰* Emial:fishyxj@sina.com* 2011.9.26* 功能:用于獲取計算機的各種信息,包括CPU的ID,MAC地址,硬盤ID,* IP地址登錄用戶名,計算機名稱,系統(tǒng)類型,物理內(nèi)存,主板的ID,* BIOS的ID* * 缺陷:當計算機存在虛擬網(wǎng)卡時,無法區(qū)分虛擬網(wǎng)卡與真實網(wǎng)卡,因此* 讀取MAC地址時,會存在不穩(wěn)定的情況。需要自行處理虛擬網(wǎng)卡MAC的情* 況 /*****************************************************************/using System; using System.Collections.Generic; using System.Text; using System.Management; using System.Collections; using System.Net.NetworkInformation; using Microsoft.Win32;namespace XFish.Utils {/// <summary>/// 計算機信息類/// </summary>public class Computer{#region 類內(nèi)部變量private string _CpuID;private string _MacAddress;private ArrayList _MacAddList;private string _DiskID;private string _IpAddress;private string _LoginUserName;private string _ComputerName;private string _SystemType;private string _TotalPhysicalMemory; //單位:M private string _BaseboardID;private string _BiosID;private static Computer _instance;#endregion#region 類屬性/// <summary>/// 獲取計算機信息全局實例/// </summary>/// <returns>Computer實例</returns>public static Computer Instance(){if (_instance == null)_instance = new Computer();return _instance;}/// <summary>/// 獲取CPU的ID/// </summary>public string CpuID{get { return _CpuID; }}/// <summary>/// 獲取MAC地址/// </summary>public string MacAddress{get { return _MacAddress; }}/// <summary>/// 獲取計算機中的MAC地址列表,當存在多個網(wǎng)卡時(包括虛擬網(wǎng)卡)/// </summary>public ArrayList MacAddList{get { return _MacAddList; }}/// <summary>/// 獲取硬盤ID/// </summary>public string DiskID{get { return _DiskID; }}/// <summary>/// 獲取IP地址(活躍的網(wǎng)卡)/// </summary>public string IpAddress{get { return _IpAddress; }}/// <summary>/// 系統(tǒng)登錄用戶名/// </summary>public string LoginUserName{get { return _LoginUserName; }}/// <summary>/// 計算機名稱/// </summary>public string ComputerName{get { return _ComputerName; }}/// <summary>/// 操作系統(tǒng)類型/// </summary>public string SystemType{get { return _SystemType; }}/// <summary>/// 總的物理內(nèi)存/// </summary>public string TotalPhysicalMemory{get { return _TotalPhysicalMemory; }}/// <summary>/// 主板ID/// </summary>public string BaseboardID{get { return _BaseboardID; }}/// <summary>/// BIOS的ID/// </summary>public string BiosID{get { return _BiosID; }}#endregion #region 類初始化public Computer(){_CpuID = GetCpuID();_MacAddress = GetMacAddress();_MacAddList = GetMacAddList();_DiskID = GetDiskID();_IpAddress = GetIPAddress();_LoginUserName = GetUserName();_SystemType = GetSystemType();_TotalPhysicalMemory = GetTotalPhysicalMemory();_ComputerName = GetComputerName();_BaseboardID = GetBaseBoardID();_BiosID = GetBiosID();}#endregion#region 類方法/// <summary>/// 獲取BIOS序列號/// </summary>/// <returns></returns>private string GetBiosID(){try{//方法一//SelectQuery Query = new SelectQuery("SELECT * FROM Win32_BaseBoard");//ManagementObjectSearcher driveID = new ManagementObjectSearcher(Query);//ManagementObjectCollection.ManagementObjectEnumerator data = driveID.Get().GetEnumerator();//data.MoveNext();//ManagementBaseObject board = data.Current;//return board.GetPropertyValue("SerialNumber").ToString();//方法二System.Management.ManagementObjectSearcher cmicWmi = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");string biosid = string.Empty;ManagementObjectCollection moc = cmicWmi.Get();foreach (ManagementObject cmicWmiObj in moc){biosid = cmicWmiObj["SerialNumber"].ToString();}return biosid;//System.Management.ManagementObjectSearcher cmicWmi = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");//string biosid = string.Empty;//ManagementObjectCollection moc = cmicWmi.Get();//foreach (ManagementObject cmicWmiObj in moc)//{// biosid += GetAllInfo(cmicWmiObj);//}//return biosid;}catch(Exception ex){//throw new Exception("unknow:"+ex.Message);return "unknow";}finally{}}/// <summary>/// 獲取CPU序列號/// </summary>/// <returns></returns>private string GetCpuID(){try{//獲取CPU序列號代碼 string cpuInfo = "";//cpu序列號 ManagementClass mc = new ManagementClass("Win32_Processor");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){cpuInfo = mo.Properties["ProcessorId"].Value.ToString();}moc = null;mc = null;return cpuInfo;//string cpuInfo = "";//cpu序列號 //ManagementClass mc = new ManagementClass("Win32_Processor");//ManagementObjectCollection moc = mc.GetInstances();//foreach (ManagementObject mo in moc)//{// cpuInfo += GetAllInfo(mo);//}//moc = null;//mc = null;//return cpuInfo;}catch (Exception ex){return "unknow";}finally{}}/// <summary>/// 獲取MAC地址列表/// </summary>/// <returns></returns>private ArrayList GetMacAddList(){try{ArrayList maclist = new ArrayList();ArrayList warelessMacList = new ArrayList();NetworkInterface[] fNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();foreach (NetworkInterface adapter in fNetworkInterfaces){string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection";RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false);if (rk != null){// 區(qū)分 PnpInstanceID // 如果前面有 PCI 就是本機的真實網(wǎng)卡 // MediaSubType 為 01 則是常見網(wǎng)卡,02為無線網(wǎng)卡。 string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString();int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0));if (fPnpInstanceID.Length > 3 &&fPnpInstanceID.Substring(0, 3) == "PCI"){string mac = adapter.GetPhysicalAddress().ToString();mac = GetMacStr(mac);maclist.Add(mac);}else if (fMediaSubType == 1)continue;else if (fMediaSubType == 2){string mac = adapter.GetPhysicalAddress().ToString();mac = GetMacStr(mac);warelessMacList.Add(mac);}}}maclist.AddRange(warelessMacList);return maclist;}catch{try{ArrayList maclist = new ArrayList();ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){if (mo["MacAddress"] != null){string mac = mo["MacAddress"].ToString();maclist.Add(mac);}}moc = null;mc = null;return maclist;}catch{return null;}}}/// <summary>/// 獲取MAC地址/// </summary>/// <returns></returns>private string GetMacAddress(){try{string warelessMac = string.Empty;string mac = string.Empty;NetworkInterface[] fNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();foreach (NetworkInterface adapter in fNetworkInterfaces){string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection";RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false);if (rk != null){// 區(qū)分 PnpInstanceID // 如果前面有 PCI 就是本機的真實網(wǎng)卡 // MediaSubType 為 01 則是常見網(wǎng)卡,02為無線網(wǎng)卡。 string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString();int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0));if (fPnpInstanceID.Length > 3 &&fPnpInstanceID.Substring(0, 3) == "PCI"){mac = adapter.GetPhysicalAddress().ToString();break;}else if (fMediaSubType == 1)continue;else if (fMediaSubType == 2)warelessMac = adapter.GetPhysicalAddress().ToString();} }if (!mac.Equals(string.Empty))return GetMacStr(mac);else if (!warelessMac.Equals(string.Empty))return GetMacStr(warelessMac);elsereturn "unknow";}catch (Exception ex){return "unknow";}finally{}}/// <summary>/// 獲取MAC地址/// </summary>/// <param name="mac"></param>/// <returns></returns>private string GetMacStr(string mac){string newmac = string.Empty;newmac = mac.Substring(0, 2);mac = mac.Substring(2, mac.Length - 2);while (!mac.Equals(string.Empty)){newmac += ":";newmac += mac.Substring(0, 2);mac = mac.Substring(2, mac.Length - 2);}return newmac;}/// <summary>/// 獲取IP地址/// </summary>/// <returns></returns>private string GetIPAddress(){try{//獲取IP地址 string st = "";ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){if ((bool)mo["IPEnabled"] == true){//st=mo["IpAddress"].ToString(); System.Array ar;ar = (System.Array)(mo.Properties["IpAddress"].Value);st = ar.GetValue(0).ToString();break;}}moc = null;mc = null;return st;}catch (Exception ex){return "unknow";}}/// <summary>/// 獲取硬盤的序列號/// </summary>/// <returns></returns>private string GetDiskID(){try{//方法一//ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");//String strHardDiskID = null;//foreach (ManagementObject mo in searcher.Get())//{// strHardDiskID = mo["SerialNumber"].ToString().Trim();// break;//}//return strHardDiskID; //方法二//System.Management.ManagementObjectSearcher cmicWmi = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");//string diskid = string.Empty;//foreach (ManagementObject cmicWmiObj in cmicWmi.Get())//{// diskid = cmicWmiObj["signature"].ToString();//}//return diskid;//方法三 //String HDid = "";//ManagementClass mc = new ManagementClass("Win32_DiskDrive");//ManagementObjectCollection moc = mc.GetInstances();//foreach (ManagementObject mo in moc)//{// HDid = (string)mo.Properties["model"].Value;//}//moc = null;//mc = null;//return HDid;//方法四System.Management.ManagementObjectSearcher cmicWmi = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");string tmp = string.Empty;foreach (ManagementObject cmicWmiObj in cmicWmi.Get()){bool isSyspan = false;System.Management.PropertyDataCollection pdc = cmicWmiObj.Properties;string info = string.Empty;foreach (PropertyData pd in pdc){if (pd.Name.Equals("Name")){if (pd.Value.Equals("\\\\.\\PHYSICALDRIVE0")){isSyspan = true;}}if (isSyspan){if (pd.Name.Equals("PNPDeviceID")){tmp += pd.Value;}else if (pd.Name.Equals("Signature")){tmp += pd.Value;break;}}}}return tmp;}catch (Exception ex){return "unknow";}finally{}}/// <summary> /// 操作系統(tǒng)的登錄用戶名 /// </summary> /// <returns></returns> private string GetUserName(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["UserName"].ToString();}moc = null;mc = null;return st;}catch (Exception ex){return "unknow";}finally{}}/// <summary> /// 獲取計算機操作系統(tǒng)類型 /// </summary> /// <returns></returns> private string GetSystemType(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["SystemType"].ToString();}moc = null;mc = null;return st;}catch (Exception ex){return "unknow";}finally{}}/// <summary> /// 獲取計算機物理內(nèi)存 /// </summary> /// <returns></returns> private string GetTotalPhysicalMemory(){try{string st = "";ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){st = mo["TotalPhysicalMemory"].ToString();}moc = null;mc = null;return st;}catch (Exception ex){return "unknow";}finally{}}/// <summary>/// 獲取主板的ID/// </summary>/// <returns></returns>private string GetBaseBoardID(){try{//string strbNumber = string.Empty;//ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_baseboard");//foreach (ManagementObject mo in mos.Get())//{// strbNumber = mo["SerialNumber"].ToString();// break;//}//return strbNumber;ManagementClass mc = new ManagementClass("WIN32_BaseBoard");ManagementObjectCollection moc = mc.GetInstances();string SerialNumber = "";foreach (ManagementObject mo in moc){SerialNumber = mo["SerialNumber"].ToString();break;}return SerialNumber;//ManagementClass mc = new ManagementClass("WIN32_BaseBoard");//ManagementObjectCollection moc = mc.GetInstances();//string SerialNumber = "";//foreach (ManagementObject mo in moc)//{// SerialNumber = GetAllInfo(mo);//}//return SerialNumber;}catch (Exception ex){return "unknow";}finally{}}/// <summary>/// 獲取計算機名稱/// </summary>/// <returns></returns>private string GetComputerName(){try{return System.Environment.GetEnvironmentVariable("ComputerName");}catch(Exception ex){return "unknow";}finally{}}#endregion} }

  

轉(zhuǎn)載于:https://www.cnblogs.com/fishyxj/archive/2011/09/26/2192418.html

總結(jié)

以上是生活随笔為你收集整理的获取计算机中的硬件信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人免费毛片免费 | 五月婷婷六月天 | 三级在线免费 | 一区三区视频在线观看 | 自拍偷拍亚洲天堂 | 狠狠久久久 | 欧美中文字幕一区 | 亚洲成熟毛多妇女av毛片 | 黄色美女一级片 | 天天爽夜夜爽视频 | 亚洲女优一区 | 日本精品一二三区 | 青青青青青青草 | 女仆裸体打屁屁羞羞免费 | 麻豆av一区二区三区 | 麻豆一区二区在线观看 | 中文字幕天堂在线 | 精品国产乱码久久久久久婷婷 | 国产在线欧美日韩 | 欧美亚洲二区 | 一区二区成人免费视频 | 日韩亚洲视频在线观看 | 鲁鲁狠狠狠7777一区二区 | 中文字幕日本在线观看 | 色妞www精品视频 | 欧美激情在线免费观看 | 中出在线 | 少妇一夜三次一区二区 | 九色porny视频 | 色视频在线观看 | 九九欧美 | 国产精品污www一区二区三区 | 怡春院视频| 51成人网 | 九九资源网 | 中文字幕视频一区二区 | av在线观 | 超黄网站在线观看 | 欧美另类日韩 | 亚洲国产精品999 | 人人草人人搞 | 日本丰满熟妇bbxbbxhd | 大香蕉毛片 | 免费极品av一视觉盛宴 | 一区二区三区美女视频 | 国产特黄级aaaaa片免 | 国产成人精品国内自产拍免费看 | 宝贝乖h调教灌尿穿环 | 国产日产精品一区 | 可以看的毛片 | avtt中文字幕 | 欧美成人精品欧美一级私黄 | jizz中文字幕 | 国产在线第一页 | 日本免费在线视频观看 | 91视频在线网站 | 看全色黄大色黄大片女一次牛 | 青青草手机在线 | 日韩欧美亚洲一区二区 | 浪浪视频在线观看 | 性欧美欧美巨大69 | 日韩精品av一区二区三区 | 成人a毛片| 中文字幕日韩精品在线 | 国产做受网站 | 亚洲区偷拍 | www.黄色 | 男生操女生在线观看 | 男人爽女人下面动态图 | 玖玖爱在线精品视频 | 亚洲经典一区二区 | 天天爱天天做 | 人妻体内射精一区二区 | 国产图片一区 | 欧美综合亚洲 | 超碰av男人的天堂 | 日韩国产91 | av中文字 | 天天干天天透 | www,jizz,com | 亚洲区视频 | 日本护士╳╳╳hd少妇 | www..99热| 久热欧美 | 久久精品美女 | 国产精品久久久久久久免费观看 | 成品人视频ww入口 | jizz中国少妇高潮出水 | 国产又粗又长又大 | 一本色道久久88亚洲精品综合 | 国产在线三区 | 99热亚洲 | 精品欧美一区二区三区久久久 | 91精品国产一区 | 女人被灌满精子 | 日韩三级视频在线播放 | 欧美日韩在线观看一区 | 亚洲婷婷小说 | 在线观看免费国产视频 |