Toutes les réponses ici, y compris celle acceptée, vous donneront la quantité totale de RAM disponible . Et c'est peut-être ce que voulait OP.
Mais si vous souhaitez obtenir la quantité de RAM installée , vous voudrez passer un appel au GetPhysicallyInstalledSystemMemory fonction .
À partir du lien, dans la section Remarques:
La fonction GetPhysicallyInstalledSystemMemory récupère la quantité de RAM physiquement installée à partir des tables de microprogramme SMBIOS de l'ordinateur. Cela peut différer de la quantité signalée par la fonction GlobalMemoryStatusEx , qui définit le membre ullTotalPhys de la structure MEMORYSTATUSEX sur la quantité de mémoire physique disponible pour le système d'exploitation à utiliser. La quantité de mémoire disponible pour le système d'exploitation peut être inférieure à la quantité de mémoire physiquement installée sur l'ordinateur car le BIOS et certains pilotes peuvent réserver de la mémoire en tant que régions d'E / S pour les périphériques mappés en mémoire, rendant la mémoire indisponible pour le système d'exploitation et applications.
Exemple de code:
[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.");
}