我搜索了很多,但没有找到任何工作代码通过C#获取SPD表信息。在那里有很多软件可以获得这些信息但是如何?
如图所示,对于RAM设备,您可以看到制造商的名称,WMI等根本无法检索
如果在C#中使用DLL也将是完美的
经过一些研究发现:
https://github.com/sapozhnikovay/SMBIOS
但它无法读取表17以获取内存设备信息。
答案 0 :(得分:4)
在我研究此问题后,您需要通过 SMBUS (不是SMBIOS)获取此信息。但是您需要创建一个驱动程序(C / C ++中的WDM)来访问此信息。
答案 1 :(得分:1)
确保您已添加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");
我对它进行了测试并返回了序列号,您还可以查看可以放入的产品列表,如制造商,名称,容量等。
我从this YouTube video获得了所有这些信息。
您可以找到所有设备及其属性here(CPU,GPU等)