WMI给我不完整的硬件信息(物理内存)

WMI giving me incomplete hardware info (PhysicalMemory)

本文关键字:信息 硬件 物理内存 WMI      更新时间:2023-10-16

我已经读过一个关于这个问题几乎完全相同的问题(WMI硬件,获取RAM信息),在这里我希望得到更多关于这个主题的信息。

我需要获取各种硬件信息,如RAM序列号,硬盘SN, CPU SN等。我使用Visual c++ 2010并使用WMI来查询信息,但它并没有给我我想要的。例如,我开始尝试获得RAM SN,并查询它(我使用Win32_PhysicalMemory然后我得到属性"SerialNumber")后,我得到

SerialNumber
SerNum0
SerNum1

显然不是。我也去了命令行(wmic memorychip get serialnumber),但我得到了同样的东西。但我知道序列号在那里;当我使用第三方程序CPU-Z时,它可以完美地检索RAM序列号。

我是否查询了错误的类?我错过什么了吗?我已经在其他多台计算机上尝试了我制作的可执行文件,有成功的也有失败的,但是CPU-Z从来没有失败过。

我在Windows 7 64位计算机上使用Visual Studio c++ 2010进行开发。谢谢。

WMI使用WMI提供程序获取数据,不幸的是一些制造商不向这些提供程序公开这些数据,所以您在这里很幸运。如果您需要一种可靠的方法来获取一些内存信息,如序列号、制造商等,您可以使用串行存在检测(SPD),就像CPU-Z一样。您可以从jedec网站获得与SPD相关的所有文档。