using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Management; namespace Welling_Motor_Debug_Tool { internal class PC_Information { //获取设备ID public static string GetSystemID() { string systemId = null; using (ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_ComputerSystemProduct")) { foreach (var item in mos.Get()) { systemId = item["UUID"].ToString(); } } return systemId; } // 获取CPU序列号 public static string GetCPUSerialNumber() { string CPU_NO = "";//cpu序列号 ManagementClass managementClass = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = managementClass.GetInstances(); foreach (ManagementObject mo in moc) { CPU_NO = mo.Properties["ProcessorId"].Value.ToString(); } return CPU_NO; } //主板型号 public static string GetBoardType() { string str = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); foreach (var o in mos.Get()) { ManagementObject mo = (ManagementObject)o; str = mo["Product"].ToString(); } return str; } //主板制造商 public static string GetBoardManufacturer() { SelectQuery query = new SelectQuery("Select * from Win32_BaseBoard"); ManagementObjectSearcher mos = new ManagementObjectSearcher(query); ManagementObjectCollection.ManagementObjectEnumerator data = mos.Get().GetEnumerator(); data.MoveNext(); ManagementBaseObject board = data.Current; string baseBoradMaker = board.GetPropertyValue("Manufacturer").ToString(); return baseBoradMaker; } // 获取主板序列号 public static string GetBIOSSerialNumber() { string str = ""; ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard"); foreach (var o in mos.Get()) { ManagementObject mo = (ManagementObject)o; str = mo["SerialNumber"].ToString(); } return str; } // 获取硬盘序列号 public static string GetHardDiskSerialNumber() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); string hardDiskSerialNumber = ""; foreach (ManagementObject mo in searcher.Get()) { hardDiskSerialNumber = mo["SerialNumber"].ToString().Trim(); break; } return hardDiskSerialNumber; } catch { return "None"; } } // 获取网卡地址 public static string GetNetCardMACAddress() { var mac = ""; var mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); var moc = mc.GetInstances(); foreach (var o in moc) { var mo = (ManagementObject)o; if (!(bool)mo["IPEnabled"]) continue; mac = mo["MacAddress"].ToString(); break; } return mac; } //获取CPU型号 public static string GetCpuName() { var CPUName = ""; var management = new ManagementObjectSearcher("Select * from Win32_Processor"); foreach (var baseObject in management.Get()) { var managementObject = (ManagementObject)baseObject; CPUName = managementObject["Name"].ToString(); } return CPUName; } //获取CPU制造厂商 public static string GetCpuManufacturer() { var CPUMakerStr = ""; var management = new ManagementObjectSearcher("Select * from Win32_Processor"); foreach (var baseObject in management.Get()) { var managementObject = (ManagementObject)baseObject; CPUMakerStr = managementObject["Manufacturer"].ToString(); } return CPUMakerStr; } //获取IP地址 public static string GetIpAddress() { var IPv4Str = ""; var management = new ManagementClass("Win32_NetworkAdapterConfiguration"); var managementObject = management.GetInstances(); foreach (ManagementBaseObject managementBaseObject in managementObject) { var management1 = (ManagementObject)managementBaseObject; if (!(bool)management1["IPEnabled"]) continue; Array array = (Array)(management1.Properties["IpAddress"].Value); IPv4Str = array.GetValue(0).ToString(); break; } return IPv4Str; } //操作系统 public static string GetSystemType() { var sysTypeStr = ""; ManagementClass mc = new ManagementClass("Win32_ComputerSystem"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementBaseObject o in moc) { ManagementObject mo = (ManagementObject)o; sysTypeStr = mo["SystemType"].ToString(); } return sysTypeStr; } //内存 public static float GetPhysicalMemory() { float memoryCount = 0; var mc = new ManagementClass("Win32_ComputerSystem"); var moc = mc.GetInstances(); foreach (var o in moc) { var mo = (ManagementObject)o; string str = mo["TotalPhysicalMemory"].ToString();//单位为 B float a = long.Parse(str); memoryCount = a / 1024 / 1024 / 1024;//单位换成GB } return memoryCount; } // 获取每一个硬盘的容量,单位GB public static string GetDiskCapacity() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM win32_DiskDrive"); string HardDriveCapacity = ""; foreach (ManagementObject mo in searcher.Get()) { long size_B = long.Parse(mo["Size"].ToString());// float sizeGB = size_B / 1000 / 1000 / 1000; HardDriveCapacity = sizeGB.ToString() + "\n" + HardDriveCapacity; } return HardDriveCapacity; } catch { return "Failed to get the capacity of each disk."; } } } }