Tutte le risposte qui, inclusa quella accettata, ti daranno la quantità totale di RAM disponibile per l'uso. E forse era quello che voleva OP.
Ma se sei interessato a ottenere la quantità di RAM installata , allora ti consigliamo di effettuare una chiamata alla funzione GetPhysicallyInstalledSystemMemory .
Dal link, nella sezione Osservazioni:
La funzione GetPhysicallyInstalledSystemMemory recupera la quantità di RAM installata fisicamente dalle tabelle del firmware SMBIOS del computer. Ciò può essere diverso dalla quantità riportata dalla funzione GlobalMemoryStatusEx , che imposta il membro ullTotalPhys della struttura MEMORYSTATUSEX sulla quantità di memoria fisica che è disponibile per il sistema operativo da utilizzare. La quantità di memoria disponibile per il sistema operativo può essere inferiore alla quantità di memoria fisicamente installata nel computer perché il BIOS e alcuni driver possono riservare memoria come regioni di I / O per i dispositivi mappati in memoria, rendendo la memoria non disponibile per il sistema operativo e applicazioni.
Codice d'esempio:
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetPhysicallyInstalledSystemMemory(out long TotalMemoryInKilobytes);
static void Main()
{
long memKb;
GetPhysicallyInstalledSystemMemory(out memKb);
Console.WriteLine((memKb / 1024 / 1024) + " GB of RAM installed.");
}