检索计算机上的 RAM 总量 [重复]

Posted

技术标签:

【中文标题】检索计算机上的 RAM 总量 [重复]【英文标题】:Retrieving Total amount of RAM on a computer [duplicate] 【发布时间】:2011-12-11 07:21:09 【问题描述】:

可能重复:C# - How do you get total amount of RAM the computer has?

以下将检索有多少内存可用:

PerformanceCounter ramCounter;
ramCounter = new PerformanceCounter("Memory", "Available MBytes");
Console.WriteLine("Total RAM: " + ramCounter.NextValue().ToString() + " MB\n\n");

当然,我们必须使用 System.Diagnostics;类。

性能计数器是否有任何功能可以检索特定机器的 RAM 量?我不是在谈论使用或未使用的 ram 数量。我说的是机器的内存量。

【问题讨论】:

检查 [this][1] 。 [1]:***.com/questions/105031/… 这里已经回答了这个问题:***.com/questions/105031/… 是的,但不是通过使用性能计数器类。我试图直接从性能计数器类而不是通过 Visual Basic DLL 来解决这个问题。 【参考方案1】:

这些信息已经在.NET 框架中直接可用,您不妨使用它。项目 + 添加引用,选择 Microsoft.VisualBasic。

using System;

class Program 
    static void Main(string[] args) 
        Console.WriteLine("You have 0 bytes of RAM",
            new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory);
        Console.ReadLine();
    

不,它不会将您的 C# 代码转换为 vb.net。

【讨论】:

谢谢,这对我来说效果很好。 您能否建议我如何将我的主题设置为已回答/已完成? 该问题询问机器上的 RAM 量,所以这应该是 new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory 而不是显示当前分配的字节数的 AvailablePhysicalMemory。 在 .NET 3.0+ 中不起作用。 The entire Devices namespace has been removed. 改为以 .NET Core 5 为目标。【参考方案2】:

你可以这样试试

添加对 System.Management 的引用。

private static void DisplayTotalRam()

  string Query = "SELECT MaxCapacity FROM Win32_PhysicalMemoryArray";
  ManagementObjectSearcher searcher = new ManagementObjectSearcher(Query);
  foreach (ManagementObject WniPART in searcher.Get())
  
    UInt32 SizeinKB = Convert.ToUInt32(WniPART.Properties["MaxCapacity"].Value);
    UInt32 SizeinMB = SizeinKB / 1024;
    UInt32 SizeinGB = SizeinMB / 1024;
    Console.WriteLine("Size in KB: 0, Size in MB: 1, Size in GB: 2", SizeinKB, SizeinMB, SizeinGB);
  

【讨论】:

由于某种原因,这是检索错误的值,假设是 3.34 g,它正在检索 4 GB。我有一些代码可以做到这一点,并且在我的笔记本电脑上的地雷应用程序中使用了 6 年并且工作正常。向我的计算机添加了更多 RAM,但突然无法正常工作。无论如何,谢谢。 这不是检索当前安装的内存这是检索可以安装到主板的最大支持内存量。

以上是关于检索计算机上的 RAM 总量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php 文件 actionscript 计算机属性 ram 处理器信息

列出我的计算机上安装的物理驱动器 [重复]

将桌面应用程序的数据库与另一台计算机上的数据库连接[重复]

我在 Windows 计算机上找不到 my.cnf [重复]

如何修复其他计算机上的错误“其他计算机程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll”[重复]

如何确保用户无法在SAME计算机上执行某些操作[重复]