前三講的內容講得很不詳細,因為這是之前做的,所以就大概拷貝了一下代碼,接下來要實現的幾個功能我也是一邊學習,一邊做的,所以會講得稍微詳細一點。
獲得當前儲存資訊要用到的函數
BOOL WINAPI GlobalMemoryStatus(__inout LPMEMORYSTATUSEX lpBuffer);
其中,lpBuffer是一個MEMORYSTATUS結構體,可以擷取當前的儲存資訊。
typedef struct _MEMORYSTATUS {
DWORD dwLength;
DWORD dwMemoryLoad;
DWORD dwTotalPhys;
DWORD dwAvailPhys;
DWORD dwTotalPageFile;
DWORD dwAvailPageFile;
DWORD dwTotalVirtual;
DWORD dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;
public partial class MemoryStatus : Form<br /> {<br /> public struct MEMORYINFO {<br /> public int dwLength;<br /> public int dwMemoryLoad;<br /> public int dwTotalPhys;<br /> public int dwAvailPhys;<br /> public int dwTotalPageFile;<br /> public int dwAvailPageFile;<br /> public int dwTotalVirtual;<br /> public int dwAvailVirtual;<br /> };</p><p> public MemoryStatus()<br /> {<br /> InitializeComponent();<br /> initial();<br /> }</p><p> private void menuItem1_Click(object sender, EventArgs e)<br /> {<br /> this.Close();<br /> }</p><p> private void initial() //初始化,擷取儲存資訊<br /> {<br /> MEMORYINFO mms; //定義的記憶體資訊結構體<br /> mms = new MEMORYINFO();<br /> GlobalMemoryStatus(ref mms);<br />// totalVirtual.Text = mms.dwMemoryLoad.ToString()+"% 的記憶體正在使用";<br /> totalVirtual.Text = ((float)mms.dwTotalVirtual / 1024 / 1024).ToString("0.00") + " MB";<br /> totalPhys.Text = ((float)mms.dwTotalPhys / 1024 / 1024).ToString("0.00") + " MB";<br /> availPhys.Text = ((float)mms.dwAvailPhys / 1024 / 1024).ToString("0.00") + " MB";<br /> availVirtual.Text = ((float)mms.dwAvailVirtual / 1024 / 1024).ToString("0.00") + " MB";<br /> usePhys.Text = (((float)mms.dwTotalPhys - mms.dwAvailPhys) / 1024 / 1024).ToString("0.00") + " MB";<br /> useVirtual.Text = (((float)mms.dwTotalVirtual - mms.dwAvailVirtual) / 1024 / 1024).ToString("0.00") + " MB";<br /> }</p><p> [DllImport("coredll.dll", SetLastError = true)]<br /> public static extern void GlobalMemoryStatus(ref MEMORYINFO buffer);</p><p> }