【问题标题】:Checking RAM Bays (Windows API)检查 RAM 托架 (Windows API)
【发布时间】:2008-10-22 21:07:29
【问题描述】:

我知道可以使用 GetPhysicallyInstalledSystemMemory 检查安装了多少物理 RAM,或者使用 GlobalMemoryStatusEx 检查操作系统可以看到多少 RAM。但是,我想知道是否有任何方法可以检查用户按插槽安装了多少内存。也就是说,能够以编程方式区分 1x2GB 内存和 2x1GB 内存之间的区别,从而检查计算机是否可以通过软件轻松升级。理想情况下,一种无需 .Net 即可检查的方法。

【问题讨论】:

    标签: winapi memory hardware


    【解决方案1】:

    使用 WMI 查看 Win32_PhysicalMemory。查看容量和银行标签属性。

    更新:您不需要.NET。有关 C++ 中的示例,请参阅 Creating a WMI Application Using C++

    【讨论】:

    • 上述属性和其他属性看起来正是 CPU-Z [cpuid.com/cpuz.php] 将使用的东西。 CPU-Z 完全可以完成您所追求的事情。
    • 我怀疑 WMI 可以做到这一点,但我很确定 WMI 需要 .net。
    • WMI Scriptomatic [microsoft.com/downloads/… 是在您坐下来编写任何代码之前阅读 WMI 属性的良好起点。
    • WMI 不需要 .NET(尽管使用它更容易)
    【解决方案2】:

    查看 here 列出的函数的 MSDN 文档,我看到该函数检查了 SMBIOS 表,该表由标准 here 引用 看来您确实可以通过 BIOS 找到您要查找的信息。您可能必须安装驱动程序才能将该信息传递给您的程序。

    祝你好运!

    【讨论】:

      【解决方案3】:

      您不需要 WMI(总是避免 WMI(慢)),也不需要任何驱动程序(当然) 使用标准 Win32 SMB api

      【讨论】:

        【解决方案4】:

        在 Linux 上,我几乎总能使用 dmidecode 找到该信息,它从 BIOS 解析 DMI 表。它显示了所有内存插槽以及每个内存插槽的内容,以及其他有趣的信息。但是,我不知道如何在 Windows 上获取 DMI 数据。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-07
          • 2013-05-03
          • 2016-01-17
          • 1970-01-01
          • 2018-08-17
          • 1970-01-01
          • 2012-02-24
          • 2010-11-10
          相关资源
          最近更新 更多