Извлечение всего объема ОЗУ на компьютер

Возможный дубликат:
С# - Как вы получаете общий объем оперативной памяти компьютера?

Ниже будет показано, сколько оперативной памяти доступно:

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

Конечно, нам придется использовать System.Diagnostics; класс.

Имеет ли функция performancecounter какие-либо функции для получения объема оперативной памяти конкретной машины? Я не говорю о количестве используемого или неиспользованного барана. Я говорю о количестве бара машины.

Ответ 1

Эта информация уже доступна непосредственно в платформе .NET, вы также можете ее использовать. Project + Добавить ссылку, выберите 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();
    }
}

И нет, он не превращает ваш код С# в vb.net.

Ответ 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);
  }
}