主要就是一個計算。函數
int CUseRate::GetCPUUseRate() //獲取CPU使用率 { int nCPUUseRate = -1; FILETIME ftIdle, ftKernel, ftUser; if (GetSystemTimes(&ftIdle, &ftKernel, &ftUser)) { double fCPUIdleTime = FileTimeToDouble(ftIdle); double fCPUKernelTime = FileTimeToDouble(ftKernel); double fCPUUserTime = FileTimeToDouble(ftUser); //CPU利用率公式 nCPUUseRate= (int)(100.0 - (fCPUIdleTime - m_fOldCPUIdleTime) / (fCPUKernelTime - m_fOldCPUKernelTime + fCPUUserTime - m_fOldCPUUserTime) *100.0); m_fOldCPUIdleTime = fCPUIdleTime; m_fOldCPUKernelTime = fCPUKernelTime; m_fOldCPUUserTime = fCPUUserTime; } return nCPUUseRate; }
調用GlobalMemoryStatusEx函數獲取spa
long long CUseRate::getRam() //獲取當前內存使用率 { long long ram; MEMORYSTATUSEX statex; statex.dwLength =sizeof(statex); GlobalMemoryStatusEx(&statex); ram = statex.dwMemoryLoad; return ram; }
工程源碼:http://download.csdn.net/detail/qq_33892166/9889310.net