如何确定Windows中物理安装的内存量?

Ran*_*all 6 c++ memory system

我需要记录用户有多少RAM的信息.我的第一种方法是使用GlobalMemoryStatusEx,但这只能给我窗口可用的内存量,而不是安装量.我发现这个函数Ge​​tPhysicallyInstalledSystemMemory但它只有Vista和更高版本.我需要这个在XP上工作.是否有一种相当简单的方法来查询GetPhysicallyInstalledSystemMemory正在使用的SMBIOS信息,或者是否存在我可以找到的注册表值.

Bil*_*eal 3

编辑:我会使用steelbytes的答案,但如果由于某种原因你不能使用WMI,你可以这样做:

我不相信 Vista 之前的 Windows 版本会跟踪此信息 - 您必须执行一些特定于系统的 BIOS 或主板枚举才能找到 Vista 之前的真实值。对于 XP 系统,最好的选择是调用新的 API,GetPhysicallyInstalledSystemMemory并进行故障转移GlobalMemoryStatusEx