Получите серийные номера системной платы и идентификаторы ЦП в C#
В этом примере показано, как получить серийные номера системной платы и идентификаторы ЦП. WMI (Инструмент управления Windows) позволяет использовать SQL-подобные инструкции, чтобы спросить компьютер о себе.
Функция GetBoardSerialNumbers, показанная в следующем коде, возвращает список, содержащий серийные номера материнской платы.
// Используйте WMI для возврата серийных номеров базовой платы системы. private ListGetBoardSerialNumbers() { List results = new List (); string query = "SELECT * FROM Win32_BaseBoard"; ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); foreach (ManagementObject info in searcher.Get()) { results.Add( info.GetPropertyValue("SerialNumber").ToString()); } return results; }
В коде используется запрос WMI SELECT * FROM Win32_BaseBoard, чтобы получить информацию о материнских платах системы (базовых плате). Код проходит через результирующий набор Win32_BaseBoard ManagementObject s и добавляет их значения SerialNumber в список результатов.
Функция GetCpuIds, показанная в следующем коде, возвращает список, содержащий идентификаторы ЦП системы.
// Используйте WMI для возврата идентификаторов ЦП. private ListGetCpuIds() { List results = new List (); string query = "Select * FROM Win32_Processor"; ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); foreach (ManagementObject info in searcher.Get()) { results.Add( info.GetPropertyValue("ProcessorId").ToString()); } return results; }
Этот метод использует запрос WMI SELECT * FROM Win32_Processor, чтобы получить информацию о процессорах системы. Код проходит через результирующий набор Win32_Processor ManagementObject s и добавляет их значения ProcessorId в список результатов.
Следующий код показывает, как основная программа отображает результаты в ListBox es.
// Отображение серийных номеров материнской платы и идентификаторов ЦП. private void Form1_Load(object sender, EventArgs e) { lstBoardSerialNumbers.DataSource = GetBoardSerialNumbers(); lstCpuIds.DataSource = GetCpuIds(); }