请帮帮忙,好么?(怎样取得当前内存和CPU的占有率win2000)

RichRiver 2003-08-25 10:06:43
同上
...全文
35 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanyaliji 2003-08-27
  • 打赏
  • 举报
回复
gaoshou
kingzai 2003-08-25
  • 打赏
  • 举报
回复
http://www.codeguru.com/system/perfmon.shtml
maginn 2003-08-25
  • 打赏
  • 举报
回复
up
我也很想知道
jruv 2003-08-25
  • 打赏
  • 举报
回复
void CAutoShutDownDlg::GetCpuUsage()
{
// get system time
status = NtQuerySystemInformation(3,&SysTimeInfo,sizeof(SysTimeInfo),0);

if (status!=NO_ERROR)
{
MessageBox("failed to get system time!");
}

// get cpu idle time
status = NtQuerySystemInformation(2,&SysPerfInfo,sizeof(SysPerfInfo),NULL);
if (status != NO_ERROR)
{
MessageBox("failed to get cpu time");
}

if (liOldIdleTime.QuadPart != 0)
{
// new cpu Time = NewTime - OldTime
dbCpuIdleTime =LI64ToDouble(SysPerfInfo.liIdleTime)-LI64ToDouble(liOldIdleTime);
dbSysTime =LI64ToDouble(SysTimeInfo.liKeSystemTime)-LI64ToDouble(liOldSysTime);
//get cpu usage
unCpuUsage=100 - 100*(dbCpuIdleTime/dbSysTime)/(double)SysBaseInfo.bKeNumberProcessors+0.5;
}

wsprintf(CpuUsage,"%d%%",(UINT)unCpuUsage);
m_sCpuUsage=(CString)CpuUsage;

//if cpu usage ==0% then shutdown os
if(bSetAuto&&(UINT)dbCpuIdleTime==0)
{
//MessageBox("shutdown os!");
ShutDown();
}
// store new cpu idle and system time
liOldIdleTime = SysPerfInfo.liIdleTime;
liOldSysTime = SysTimeInfo.liKeSystemTime;
}
jruv 2003-08-25
  • 打赏
  • 举报
回复
typedef NTSTATUS (__stdcall *NTQUERYSYSTEMINFORMATION)
(IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
IN OUT PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength OPTIONAL);
NTQUERYSYSTEMINFORMATION NtQuerySystemInformation;

SystemInformation是一个LPVOID型的指针,它为我们提供需要获得的信息,或是我们需要设置的系统信息。

typedef struct __SYSTEM_PROCESSOR_TIMES
{
LARGE_INTEGER IdleTime; //空闲时间;
LARGE_INTEGER KernelTime; //内核模式时间;
LARGE_INTEGER UserTime; //用户模式时间;
LARGE_INTEGER DpcTime; //延迟过程调用时间;
LARGE_INTEGER InterruptTime; //中断时间;
ULONG InterruptCount; //中断次数;
}SYSTEM_PROCESSOR_TIMES,*PSYSTEM_PROCESSOR_TIMES;

SYSTEM_PROCESSOR_TIMES提供的系统处理器的使用情况,包括各种情况下的使用时间及中断数目:

NeoBean 2003-08-25
  • 打赏
  • 举报
回复
看看MSDN里关于WMI应用的开发。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧