0

我是编码的新手,我正在尝试制作一个简单的应用程序,像你一样在多行文本框中显示计算机信息。

因此,我设法通过在注册表中搜索操作系统名称、版本等并使用 system.environment 来获取当前登录的用户、体系结构等来获取基础知识,我使用 ManagementObjectSearcher 来获取我的 cpu 的名称以及我的总内存.

我的问题是我安装了 4 个记忆棒,所以虽然应用程序在技术上通过返回每个记忆棒的总大小来满足我的要求,但我实际上只想要一个 16GB 的实例而不是 4 个 4GB 的实例。这是我使用的:

ManagementObjectSearcher search = new ManagementObjectSearcher("Select * From Win32_PhysicalMemory");

foreach (ManagementObject ram in search.Get())
            {
                txtSystemInfo.Text += "\r\nRAM: " + Convert.ToDouble(ram.GetPropertyValue("Capacity")) / 1073741824 + "GB";
        }

输出基本上是这样的:

Username: xxxx
OS: Windows x.x (arch)
Version: x.x Build xxxx
CPU: Intel blah blah
RAM: 4GB
RAM: 4GB
RAM: 4GB
RAM: 4GB

显然,我刚刚跳入深渊,这可能就是为什么我无法点击此按钮的原因,因此非常感谢任何帮助。

4

1 回答 1

0

只需在循环中增加一个总数,然后格式化并显示;

UInt64 total = 0;
foreach (ManagementObject ram in search.Get())
{
    total += (UInt64)ram.GetPropertyValue("Capacity");
}

txtSystemInfo.Text += "\r\nRAM: " + total / 1073741824 + "GB";
于 2015-06-14T16:55:42.050 回答