我已经阅读了关于此问题的几乎完全相同的问题(WMI hardware, get RAM info),在这里我希望获得有关此主题的更多信息。
我需要获取各种硬件信息,例如RAM序列号,硬盘驱动器SN,CPU SN等。我正在使用Visual C++ 2010,并使用WMI来查询信息,但是并不能满足我的需求。例如,我开始尝试获取RAM SN,并在查询它之后(我使用Win32_PhysicalMemory然后获得了属性“SerialNumber”),我得到了
SerialNumber
SerNum0
SerNum1
显然不是。我也去了命令行(wmic memorychip获得序列号),但是我得到了同样的东西。但是我知道序列号在那。当我使用第三方程序CPU-Z时,它可以完美地检索RAM序列号。
我在查询错误的类(class)吗?有什么我想念的吗?我已经尝试过在多台其他计算机上制作的可执行文件,但成功与失败的结果却不尽相同-但CPU-Z从未失败。
我正在Windows 7 64位计算机上的Visual Studio C++ 2010中进行开发。谢谢。
最佳答案
WMI使用WMI提供程序获取数据,不幸的是,某些制造商没有将这些数据公开给这些提供程序,因此您很幸运。如果您想要一种可靠的方法来获取一些内存信息,例如序列号,制造商等,则可以像CPU-Z一样使用串行状态检测(SPD)。您可以从jedec站点获得与SPD相关的所有文档。