2011-12-11 33 views
10

thể trùng lặp:
C# - How do you get total amount of RAM the computer has?Lấy Tổng số lượng RAM trên một máy tính

Sau đây sẽ lấy bao nhiêu ram có sẵn:

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

Tất nhiên chúng tôi sẽ phải sử dụng System.Diagnostics; lớp học.

Trình thực thi có bất kỳ chức năng nào để truy xuất số lượng RAM của một máy cụ thể không? Tôi không nói về số lượng ram được sử dụng hoặc không sử dụng. Tôi đang nói về số lượng ram máy có.

+0

Kiểm tra [this] [1]. [1]: http://stackoverflow.com/questions/105031/c-sharp-how-do-you-get-total-amount-of-ram-the-computer-has – Shai

+0

này có đã được trả lời ở đây: http://stackoverflow.com/questions/105031/c-sharp-how-do-you-get-total-amount-of-ram-the-computer-has – Softnux

+0

Có nó có nhưng không bằng cách sử dụng hiệu suất truy cập lớp. Tôi đang cố gắng để giải quyết điều này từ lớp truy cập hiệu suất trực tiếp và không thông qua DLL cơ bản trực quan. –

Trả lời

14

Thông tin này đã có sẵn trực tiếp trong .NET framework, bạn cũng có thể sử dụng nó. Dự án + Thêm tài liệu tham khảo, chọn 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(); 
    } 
} 

Và không, nó không biến mã C# của bạn thành vb.net.

+0

Cảm ơn bạn, điều này đang làm việc khá tốt cho tôi. –

+0

Bạn có thể tư vấn cho tôi cách đặt chủ đề của tôi là đã trả lời/hoàn thành không? –

+2

Câu hỏi yêu cầu số lượng RAM trên một máy tính, vì vậy đây phải là 'Microsoft.VisualBasic.Devices.ComputerInfo() mới TotalPhysicalMemory' hơn là AvailablePhysicalMemory hiển thị số lượng byte hiện được cấp phát. – zgerd

2

bạn có thể thử như thế này

Thêm tham chiếu vào 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); 
    } 
} 
+0

Đối với một số lý do, điều này là lấy giá trị sai, giả sử là 3,34 g, nó lấy 4 gb. Tôi có một số mã để làm điều này và đã sử dụng nó trong một ứng dụng của các mỏ trên máy tính xách tay của tôi trong 6 năm và làm việc tốt. Thêm một số RAM vào máy tính của tôi và đột nhiên không hoạt động trở lại. Dù sao cũng cảm ơn bạn. –

+5

Điều này không lấy được bộ nhớ hiện đang được cài đặt, đây là việc lấy số lượng bộ nhớ tối đa được hỗ trợ có thể được cài đặt vào mainboard. – wonko79

Các vấn đề liên quan