【转】获得系统内存信息
两种方法:
 //项目中添加Micrsoft.VisualBasic引用
//项目中添加Micrsoft.VisualBasic引用 using Microsoft.VisualBasic.Devices;
using Microsoft.VisualBasic.Devices; 
 Computer vComputer = new Computer();
Computer vComputer = new Computer(); StringBuilder vMessage = new StringBuilder();
StringBuilder vMessage = new StringBuilder(); vMessage.Append(string.Format("虚拟内存共计={0}\r\n",
vMessage.Append(string.Format("虚拟内存共计={0}\r\n",  vComputer.Info.TotalVirtualMemory));
    vComputer.Info.TotalVirtualMemory)); vMessage.Append(string.Format("虚拟内存使用={0}\r\n",
vMessage.Append(string.Format("虚拟内存使用={0}\r\n",  vComputer.Info.AvailableVirtualMemory));
    vComputer.Info.AvailableVirtualMemory)); vMessage.Append(string.Format("物理内存共计={0}\r\n",
vMessage.Append(string.Format("物理内存共计={0}\r\n",  vComputer.Info.TotalPhysicalMemory));
    vComputer.Info.TotalPhysicalMemory)); vMessage.Append(string.Format("物理内存使用={0}\r\n",
vMessage.Append(string.Format("物理内存使用={0}\r\n",  vComputer.Info.AvailablePhysicalMemory));
    vComputer.Info.AvailablePhysicalMemory)); MessageBox.Show(vMessage.ToString());
MessageBox.Show(vMessage.ToString());
 // or
// or
 using System.Runtime.InteropServices;
using System.Runtime.InteropServices;
 public struct MEMORYSTATUS
public struct MEMORYSTATUS {
{ public uint dwLength;
    public uint dwLength; public uint dwMemoryLoad;
    public uint dwMemoryLoad; public uint dwTotalPhys;
    public uint dwTotalPhys; public uint dwAvailPhys;
    public uint dwAvailPhys; public uint dwTotalPageFile;
    public uint dwTotalPageFile; public uint dwAvailPageFile;
    public uint dwAvailPageFile; public uint dwTotalVirtual;
    public uint dwTotalVirtual; public uint dwAvailVirtual;
    public uint dwAvailVirtual; };
};
 [DllImport("kernel32.dll")]
[DllImport("kernel32.dll")] public static extern void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);
public static extern void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);
 public void button1_Click(object sender, EventArgs e)
public void button1_Click(object sender, EventArgs e) {
{ MEMORYSTATUS vBuffer = new MEMORYSTATUS();
    MEMORYSTATUS vBuffer = new MEMORYSTATUS(); GlobalMemoryStatus(ref vBuffer);
    GlobalMemoryStatus(ref vBuffer); StringBuilder vMessage = new StringBuilder();
    StringBuilder vMessage = new StringBuilder();
 vMessage.Append(string.Format("虚拟内存共计={0}\r\n", vBuffer.dwTotalVirtual));
    vMessage.Append(string.Format("虚拟内存共计={0}\r\n", vBuffer.dwTotalVirtual)); vMessage.Append(string.Format("虚拟内存使用={0}\r\n", vBuffer.dwAvailVirtual));
    vMessage.Append(string.Format("虚拟内存使用={0}\r\n", vBuffer.dwAvailVirtual)); vMessage.Append(string.Format("物理内存共计={0}\r\n", vBuffer.dwTotalPhys));
    vMessage.Append(string.Format("物理内存共计={0}\r\n", vBuffer.dwTotalPhys)); vMessage.Append(string.Format("物理内存使用={0}\r\n", vBuffer.dwAvailPhys));
    vMessage.Append(string.Format("物理内存使用={0}\r\n", vBuffer.dwAvailPhys)); MessageBox.Show(vMessage.ToString());
    MessageBox.Show(vMessage.ToString()); }
}
 
  
  
 
 
                    
                 


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号