PC_Information.cs 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Management;
  7. namespace Welling_Motor_Debug_Tool
  8. {
  9. internal class PC_Information
  10. {
  11. //获取设备ID
  12. public static string GetSystemID()
  13. {
  14. string systemId = null;
  15. using (ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_ComputerSystemProduct"))
  16. {
  17. foreach (var item in mos.Get())
  18. {
  19. systemId = item["UUID"].ToString();
  20. }
  21. }
  22. return systemId;
  23. }
  24. // 获取CPU序列号
  25. public static string GetCPUSerialNumber()
  26. {
  27. string CPU_NO = "";//cpu序列号
  28. ManagementClass managementClass = new ManagementClass("Win32_Processor");
  29. ManagementObjectCollection moc = managementClass.GetInstances();
  30. foreach (ManagementObject mo in moc)
  31. {
  32. CPU_NO = mo.Properties["ProcessorId"].Value.ToString();
  33. }
  34. return CPU_NO;
  35. }
  36. //主板型号
  37. public static string GetBoardType()
  38. {
  39. string str = "";
  40. ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
  41. foreach (var o in mos.Get())
  42. {
  43. ManagementObject mo = (ManagementObject)o;
  44. str = mo["Product"].ToString();
  45. }
  46. return str;
  47. }
  48. //主板制造商
  49. public static string GetBoardManufacturer()
  50. {
  51. SelectQuery query = new SelectQuery("Select * from Win32_BaseBoard");
  52. ManagementObjectSearcher mos = new ManagementObjectSearcher(query);
  53. ManagementObjectCollection.ManagementObjectEnumerator data = mos.Get().GetEnumerator();
  54. data.MoveNext();
  55. ManagementBaseObject board = data.Current;
  56. string baseBoradMaker = board.GetPropertyValue("Manufacturer").ToString();
  57. return baseBoradMaker;
  58. }
  59. // 获取主板序列号
  60. public static string GetBIOSSerialNumber()
  61. {
  62. string str = "";
  63. ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
  64. foreach (var o in mos.Get())
  65. {
  66. ManagementObject mo = (ManagementObject)o;
  67. str = mo["SerialNumber"].ToString();
  68. }
  69. return str;
  70. }
  71. // 获取硬盘序列号
  72. public static string GetHardDiskSerialNumber()
  73. {
  74. try
  75. {
  76. ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
  77. string hardDiskSerialNumber = "";
  78. foreach (ManagementObject mo in searcher.Get())
  79. {
  80. hardDiskSerialNumber = mo["SerialNumber"].ToString().Trim();
  81. break;
  82. }
  83. return hardDiskSerialNumber;
  84. }
  85. catch
  86. {
  87. return "None";
  88. }
  89. }
  90. // 获取网卡地址
  91. public static string GetNetCardMACAddress()
  92. {
  93. var mac = "";
  94. var mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
  95. var moc = mc.GetInstances();
  96. foreach (var o in moc)
  97. {
  98. var mo = (ManagementObject)o;
  99. if (!(bool)mo["IPEnabled"]) continue;
  100. mac = mo["MacAddress"].ToString();
  101. break;
  102. }
  103. return mac;
  104. }
  105. //获取CPU型号
  106. public static string GetCpuName()
  107. {
  108. var CPUName = "";
  109. var management = new ManagementObjectSearcher("Select * from Win32_Processor");
  110. foreach (var baseObject in management.Get())
  111. {
  112. var managementObject = (ManagementObject)baseObject;
  113. CPUName = managementObject["Name"].ToString();
  114. }
  115. return CPUName;
  116. }
  117. //获取CPU制造厂商
  118. public static string GetCpuManufacturer()
  119. {
  120. var CPUMakerStr = "";
  121. var management = new ManagementObjectSearcher("Select * from Win32_Processor");
  122. foreach (var baseObject in management.Get())
  123. {
  124. var managementObject = (ManagementObject)baseObject;
  125. CPUMakerStr = managementObject["Manufacturer"].ToString();
  126. }
  127. return CPUMakerStr;
  128. }
  129. //获取IP地址
  130. public static string GetIpAddress()
  131. {
  132. var IPv4Str = "";
  133. var management = new ManagementClass("Win32_NetworkAdapterConfiguration");
  134. var managementObject = management.GetInstances();
  135. foreach (ManagementBaseObject managementBaseObject in managementObject)
  136. {
  137. var management1 = (ManagementObject)managementBaseObject;
  138. if (!(bool)management1["IPEnabled"]) continue;
  139. Array array = (Array)(management1.Properties["IpAddress"].Value);
  140. IPv4Str = array.GetValue(0).ToString();
  141. break;
  142. }
  143. return IPv4Str;
  144. }
  145. //操作系统
  146. public static string GetSystemType()
  147. {
  148. var sysTypeStr = "";
  149. ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
  150. ManagementObjectCollection moc = mc.GetInstances();
  151. foreach (ManagementBaseObject o in moc)
  152. {
  153. ManagementObject mo = (ManagementObject)o;
  154. sysTypeStr = mo["SystemType"].ToString();
  155. }
  156. return sysTypeStr;
  157. }
  158. //内存
  159. public static float GetPhysicalMemory()
  160. {
  161. float memoryCount = 0;
  162. var mc = new ManagementClass("Win32_ComputerSystem");
  163. var moc = mc.GetInstances();
  164. foreach (var o in moc)
  165. {
  166. var mo = (ManagementObject)o;
  167. string str = mo["TotalPhysicalMemory"].ToString();//单位为 B
  168. float a = long.Parse(str);
  169. memoryCount = a / 1024 / 1024 / 1024;//单位换成GB
  170. }
  171. return memoryCount;
  172. }
  173. // 获取每一个硬盘的容量,单位GB
  174. public static string GetDiskCapacity()
  175. {
  176. try
  177. {
  178. ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM win32_DiskDrive");
  179. string HardDriveCapacity = "";
  180. foreach (ManagementObject mo in searcher.Get())
  181. {
  182. long size_B = long.Parse(mo["Size"].ToString());//
  183. float sizeGB = size_B / 1000 / 1000 / 1000;
  184. HardDriveCapacity = sizeGB.ToString() + "\n" + HardDriveCapacity;
  185. }
  186. return HardDriveCapacity;
  187. }
  188. catch
  189. {
  190. return "Failed to get the capacity of each disk.";
  191. }
  192. }
  193. }
  194. }