检索计算机上的RAM总量

时间:2011-12-11 07:21:09

标签: c# performancecounter

  

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

以下内容将检索可用的ram数量:

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

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

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

2 个答案:

答案 0 :(得分:14)

此信息已直接在.NET框架中提供,您也可以使用它。 Project + Add Reference,选择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。

答案 1 :(得分: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);
  }
}