文件名称:显示进程CPU利用率源码v1.1
文件大小:72KB
文件格式:RAR
更新时间:2011-01-07 05:59:40
CPU progress, usage Windows,
计算每个进程的CPU利用率的函数是int CShowAllProcessDlg::GetCpusage(int Index, DWORD id)
第一个参数是进程在进程数组中的位置,而第二个参数是进程的ID。
重要的事,计算的公式需要获得一定时间间隔的两组进程数据来完成(这样计算才精确)。
所以,定义了两个数组:
__int64 LastTotalProcessCPUUsage[50];
__int64 LastCurrentProcessCPUUsage[50];
来存放获取的数据,这两个数组很重要,当然你也可以通过其他的方法实现。若要实时刷新进程的CPU利用率的话,下次运算的时候还要用到数组中的数据。
另外,这个程序本来打算做成像Windows的任务管理器的——实时刷新CPU利用率。可后来发现换到另一电脑时,刷新出来的值是不对的。不同的CPU,其主频是不一样的,所以设置的刷新间隔时间(SetTimer的第二个参数,以毫秒为单位)也应不同。你可根据自己的情况去设置。
那个Readme希望你能读一下,也许对你有所帮助。
传给你的是可以实时刷新的。你也可以连续点击“获取进程”,观察CPU利用率随时间的变动情况。有可能出现负值,可能是设置的刷新间隔太短,也可能是两次点击间的时间间隔太长的缘故。你可以将刷新间隔适当缩短,例如1000毫秒。我不能保证获取值的正确性。因为它的间隔时间不同,得出的值就有可能不同。:) 正在研究中。
感谢所有无偿提供信息的网友。
【文件预览】:
interval_ShowAllProcess
----StdAfx.cpp(216B)
----resource.h(1KB)
----ShowAllProcess.h(1KB)
----ShowAllProcess.plg(2KB)
----SXButton.h(3KB)
----ShowAllProcess.aps(56KB)
----ShowAllProcessDlg.cpp(10KB)
----ShowAllProcess.clw(2KB)
----ShowAllProcess.ncb(193KB)
----每个进程CPU利用率Readme.txt(1KB)
----ShowAllProcess.cpp(2KB)
----ReadMe.txt(4KB)
----StdAfx.h(1KB)
----CPU.h(1KB)
----SXButton.cpp(11KB)
----ShowAllProcess.dsw(551B)
----res()
--------2.ico(16KB)
--------32X32X16_CANCELBOR.ICO(2KB)
--------ShowAllProcess.ico(1KB)
--------32X32X16_SHOW.ICO(766B)
--------ShowAllProcess.rc2(406B)
--------32X32X16_EXIT.ICO(766B)
--------Thumbs.db(8KB)
----ShowAllProcess.rc(6KB)
----ShowAllProcessDlg.h(2KB)
----ShowAllProcess.opt(48KB)
----ShowAllProcess.dsp(5KB)