2019-01-05 20:21:43 +08:00
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
|
#include "CpuUseage.h"
|
|
|
|
|
|
|
|
|
|
|
|
//ϵͳ<CFB5><CDB3><EFBFBD>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CCpuUsage::CCpuUsage()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_hQuery = NULL;
|
|
|
|
|
|
m_pCounterStruct = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
CCpuUsage::~CCpuUsage()
|
|
|
|
|
|
{
|
|
|
|
|
|
PdhCloseQuery(m_hQuery); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
2019-01-22 20:44:23 +08:00
|
|
|
|
if (m_pCounterStruct)
|
|
|
|
|
|
delete m_pCounterStruct;
|
2019-01-05 20:21:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOL CCpuUsage::Init()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ERROR_SUCCESS != PdhOpenQuery(NULL, 1, &m_hQuery)) //<2F><EFBFBD><F2BFAABC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
|
|
|
|
m_pCounterStruct = (PPDHCOUNTERSTRUCT) new PDHCOUNTERSTRUCT;
|
|
|
|
|
|
|
|
|
|
|
|
//ͳ<>Ƹ<EFBFBD><C6B8><EFBFBD>Ȥ<EFBFBD><C8A4>ϵͳ<CFB5><CDB3>Ϣʱ<CFA2><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>Ӧ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>
|
2019-01-11 21:40:11 +08:00
|
|
|
|
PDH_STATUS pdh_status = PdhAddCounter(m_hQuery, (LPCSTR)szCounterName,
|
|
|
|
|
|
(DWORD) m_pCounterStruct, &(m_pCounterStruct->hCounter));
|
2019-01-05 20:21:43 +08:00
|
|
|
|
if (ERROR_SUCCESS != pdh_status)
|
|
|
|
|
|
{
|
|
|
|
|
|
return FALSE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int CCpuUsage::GetUsage()
|
|
|
|
|
|
{
|
|
|
|
|
|
PDH_FMT_COUNTERVALUE pdhFormattedValue;
|
|
|
|
|
|
|
|
|
|
|
|
PdhCollectQueryData(m_hQuery);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
if (ERROR_SUCCESS != PdhGetFormattedCounterValue(m_pCounterStruct->hCounter,
|
|
|
|
|
|
PDH_FMT_LONG,
|
|
|
|
|
|
NULL,
|
|
|
|
|
|
&pdhFormattedValue ))
|
|
|
|
|
|
{
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return pdhFormattedValue.longValue;
|
|
|
|
|
|
}
|