15.2.4 本地监控示例--各进程CPU占用率(1)
15.2.3节重点讲解了CPU占用率原理及其实现方式,网络上也有许多优秀源代码可以参考。下面以开源的、封装好的性能计数器类,来实现各进程CPU的占用,其中主要的文件有PerfCounters.h、CpuUsage.h和CpuUsage.cpp文件,具体步骤如下所示。
(1)创建一个VC++(www.cppentry.com)工程,并选取MFC应用程序,命名为GetCpuUseage。在VC++(www.cppentry.com) 6.0的主界面上,选择File|New命令,弹出New对话框。Projects选项卡,并在列表框中选择MFC AppWizard(exe)项;在Project name文本框中输入GetCpuUseage,其他的保持默认选项;单击OK按钮,如图15.3所示。
(2)选取应用程序类型为对话框应用程序。在MFC AppWizard - Step对话框中选中Dialog based单选按钮,单击Finish按钮,就完成了GetCpuUseage的创建,如图15.4所示。
|
| 图15.3 新建MFC工程 |
|
| 图15.4 选择基于对话框类型工程 |
(3)在MFC ClassWizard对话框上添加List Ctrl控件,调整到合适大小,并为该控件添加成员变量CListCtrl m_lstCtrl_CpuUsag。右击此控件,在弹出的快捷键菜单中选择ClassWizard菜单项,在对话框中选择Member Variables选项卡,再单击Add Variable按钮,弹出Add Member Variable对话框。其中在Member variable name文本框中输入变量名m_lstCtrl_CpuUsage,单击OK按钮,就添加了此成员变量,如图15.5所示。
(4)将PerfCounters.h、CpuUsage.h和CpuUsage.cpp文件复制到工程目录。在VC++(www.cppentry.com) 6.0主界面的工作区,选择FilesView选项卡,再右击树视图控件上的GetCpuUseage files项,在弹出的快捷菜单中选择Add Files toProject选项,如图15.6所示。
(5)在GetCpuUseageDlg.h头文件中添加如下代码:
- #include "CpuUsage.h"
- #include "Tlhelp32.h"
- #define GETCPUTIMER 1
- typedef struct CpuUseAgeStruct //列表每项相关的进程数据结构
- {
- DWORD pID; //进程标识ID
- bool bExit; //进程是否退出
|
| 图15.5 关联控件变量 |
|
| 图15.6 添加工程文件 |