16,471
社区成员
发帖
与我相关
我的任务
分享
BOOL IWmiOperator::GetCpuUsage(unsigned long & dwHZCpu,int & nUseCpu_Percent)
{
BOOL ret = FALSE;
wstring strcmd;
strcmd = L"Select * from Win32_Processor";
ret = ExecQuery(strcmd);
if (ret == FALSE)
{
return FALSE;
}
ret = SetSecurityLevel(m_pEnumerator);
if (ret == FALSE)
{
return FALSE;
}
IWbemClassObject *pclsObj = NULL;
ULONG uReturn = 0;
while (m_pEnumerator)
{
HRESULT hr = m_pEnumerator->Next(WBEM_INFINITE, 1,
&pclsObj, &uReturn);
if(0 == uReturn)
{
break;
}
VARIANT Var;
VariantClear(&Var);
pclsObj->Get(L"CurrentClockSpeed",0,&Var,NULL,NULL);
dwHZCpu =Var.uintVal;
VariantClear(&Var);
hr = pclsObj->Get(L"LoadPercentage",0,&Var,NULL,NULL);
nUseCpu_Percent =Var.uiVal;
if (pclsObj != NULL)
{
pclsObj->Release();
pclsObj = NULL;
}
}
if (pclsObj != NULL)
{
pclsObj->Release();
pclsObj = NULL;
}
if (m_pEnumerator != NULL)
{
m_pEnumerator->Release();
m_pEnumerator = NULL;
}
m_LastErrorStr = "";
m_LastErrorNum = 0;
return TRUE;
}
非常感谢各位。