Kabul dahil olmak üzere buraya Bütün cevaplar, size toplam RAM miktarını verecektir mevcut kullanım için. Ve bu OP'nin istediği şey olabilir.
Ancak, yüklü RAM miktarını almakla ilgileniyorsanız , GetPhysicallyInstalledSystemMemory işlevine bir çağrı yapmak isteyeceksiniz .
Bağlantıdan Açıklamalar bölümünde:
GetPhysicallyInstalledSystemMemory fonksiyon bilgisayarın SMBIOS firmware tablolardan fiziksel olarak yüklü RAM miktarını alır. Bu , MEMORYSTATUSEX yapısının ullTotalPhys üyesini işletim sisteminin kullanabileceği fiziksel bellek miktarına ayarlayan GlobalMemoryStatusEx işlevi tarafından bildirilen miktardan farklı olabilir . BIOS ve bazı sürücüler, bellek eşlemeli aygıtlar için G / Ç bölgeleri olarak bellek ayırabileceğinden, işletim sistemi tarafından kullanılabilen bellek miktarı, bilgisayara fiziksel olarak yüklenmiş bellek miktarından daha az olabilir, bu da belleği işletim sistemi için kullanılamaz hale getirir. ve uygulamalar.
Basit kod:
[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.");
}