Ответ 1
Как только я исследовал это, вам нужно получить эту информацию через SMBUS (не SMBIOS). Но вам нужно создать драйвер (WDM в C/С++) для доступа к этой информации.
Я много искал, но не нашел никаких рабочих кодов, получающих информацию о SPD-таблицах через С#. Там есть много программ, которые получают эту информацию, но КАК?
как показано на рисунке, для устройств RAM вы можете увидеть имя производителя, которое не может быть вообще получено WMI и т.д.
Если есть DLL для использования в С#, то будет отлично и
После некоторых исследований найдено следующее:
https://github.com/sapozhnikovay/SMBIOS
но он не может прочитать таблицу 17, чтобы получить информацию о устройстве памяти.
Как только я исследовал это, вам нужно получить эту информацию через SMBUS (не SMBIOS). Но вам нужно создать драйвер (WDM в C/С++) для доступа к этой информации.
Убедитесь, что вы добавили System.Management
в качестве ссылки.
Вот строка, которая возвращает почти любую информацию, которую вы хотите от компонента:
private string getComponent(string hwClass, string syntax)
{
ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM " + hwClass);
foreach (ManagementObject mj in mos.Get())
{
return Convert.ToString(mj[syntax]);
}
return null;
}
Использование строки будет выглядеть так, например, нажатием кнопки:
label1.Text = getComponent("Win32_PhysicalMemory", "SerialNumber");
Я протестировал его, и он вернул серийный номер, вы также можете посмотреть список вещей, которые вы можете добавить в качестве производителя, имени, емкости и т.д.
Я получил всю эту информацию из это видео YouTube.
Вы можете найти все устройства и их свойства здесь (CPU, GPU и т.д.)