2011-12-11 15 views
10

Olası Çoğalt RAM Toplam miktar alınıyor: biz olacakbir bilgisayarda

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

Tabii:
C# - How do you get total amount of RAM the computer has?

bellekte ne kadar ram almak istiyorum aşağıdaki System.Diagnostics kullanmak zorunda; sınıf.

Performans sayacının belirli bir makinenin RAM miktarını almak için herhangi bir işlevi var mı? Kullanılan ya da kullanılmayan ram miktarından bahsetmiyorum. Makinenin sahip olduğu ram miktarından bahsediyorum.

+0

Bu [1] kontrol edin. [1]: http://stackoverflow.com/questions/105031/c-sharp-how-do-you-get-total-amount-of-ram-the-computer-has – Shai

+0

Bu sahip Burada yanıtlandı: http://stackoverflow.com/questions/105031/c-sharp-how-do-you-get-total-amount-of-ram-the-computer-has – Softnux

+0

Evet var ama değil kullanarak performans sayacı sınıfı. Performans temel sınıfından doğrudan Visual Basic DLL ile değil, bununla uğraşmaya çalışıyorum. –

cevap

14

Bu bilgi, doğrudan .NET framework'ünde mevcuttur, ayrıca kullanabilirsiniz. Project + Add Reference, Microsoft.VisualBasic'i seçin.

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(); 
    } 
} 

Ve hayır, C# kodunuzu vb.net'e dönüştürmez.

+0

Teşekkürler, bu benim için gayet iyi çalışıyor. –

+0

Konuyu yanıtlama/tamamlama olarak nasıl ayarladığımı bildirir misiniz? –

+2

Soru, bir makinedeki RAM miktarını sorar, bu yüzden şu anda tahsis edilen bayt miktarını görüntüleyen AvailablePhysicalMemory yerine '' MicrosoftMyVisualBasic.Devices.ComputerInfo(). TotalPhysicalMemory' olmalıdır. – zgerd

2

Eğer System.Management için bir başvuru ekleyin bu

gibi deneyebilirsiniz.

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); 
    } 
} 
+0

Bazı nedenlerden dolayı yanlış değer elde ediliyorsa, 3.34 g olduğunu varsayalım, 4 gb alınıyor. Bunu yapmak için bir kodum var ve 6 yıldır dizüstü bilgisayarımdaki mayın uygulamasında kullanıyordum ve iyi çalışıyor. Bilgisayarıma biraz daha RAM ekledim ve bir daha çalışmadı. Yine de teşekkürler. –

+5

Bu, yüklü olan belleği almıyor. Bu, ana karta takılabilen maksimum desteklenen bellek miktarını geri alıyor. – wonko79

İlgili konular