2015-06-14 50 views
0

我是一個全新的編碼,我試着製作一個簡單的應用程序,它可以像在多行文本框中一樣顯示計算機信息。System.Management,管理對象搜索器和RAM

因此,我設法通過在註冊表中搜索os名稱,版本等並使用system.environment來獲取當前登錄的用戶,體系結構等,並使用ManagementObjectSearcher獲取我的cpu的名稱以及也是我的總內存。

我的問題是我有4個記憶棒安裝,所以雖然應用程序技術上給我什麼,我要求通過返回每個記憶棒的總大小,實際上我只是想要一個16GB的實例,而不是4個4GB的實例。這是我用什麼:

ManagementObjectSearcher search = new ManagementObjectSearcher("Select * From Win32_PhysicalMemory"); 

foreach (ManagementObject ram in search.Get()) 
      { 
       txtSystemInfo.Text += "\r\nRAM: " + Convert.ToDouble(ram.GetPropertyValue("Capacity"))/1073741824 + "GB"; 
     } 

輸出基本上是這樣的:

Username: xxxx 
OS: Windows x.x (arch) 
Version: x.x Build xxxx 
CPU: Intel blah blah 
RAM: 4GB 
RAM: 4GB 
RAM: 4GB 
RAM: 4GB 

顯然我剛剛在深結束這可能是跳下,爲什麼我就不能獲得這一個點擊所以任何幫助非常感謝。

回答

0

只需增加循環中的總數,然後格式化和顯示;

UInt64 total = 0; 
foreach (ManagementObject ram in search.Get()) 
{ 
    total += (UInt64)ram.GetPropertyValue("Capacity"); 
} 

txtSystemInfo.Text += "\r\nRAM: " + total/1073741824 + "GB";