一个小巧精致的CPU监视器.doc

一个小巧精致的CPU监视器.doc

ID:58915462

大小:38.50 KB

页数:7页

时间:2020-10-26

一个小巧精致的CPU监视器.doc_第1页
一个小巧精致的CPU监视器.doc_第2页
一个小巧精致的CPU监视器.doc_第3页
一个小巧精致的CPU监视器.doc_第4页
一个小巧精致的CPU监视器.doc_第5页
资源描述:

《一个小巧精致的CPU监视器.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一个小巧精致的CPU监视器2001-12-22····Yesky  我们在运行一些系统占用率比较高的程序时,为了避免出现资源不足而运行失败或者速度非常慢的情况,应该首先确定当前的CPU使用情况。我们一般是使用“系统工具”中的“资源状况”工具,它虽然比较全面和易用,但是自身却又消耗了较多资源,而且它的那些附属的功能都是我们所不需要的,因此,我们可以考虑自己编程实现对CPU资源状况的监视。笔者经过一番探索,开发了一个小巧精致的CPU监视器,它不仅界面友好,而且占用资源极少,确实可以取代windows的“资源状况”程序。  (一)编程原理;  CPU的资源占

2、用状况被记载在注册表的项目HKEY_DYN_DATAPerfStatsStatData分支“KERNELCPUUsage"中,通过周期性的读取该键的键值,并且将参数传递到我们自己制作的监视器界面中,使之相应的变化,这就可以即时反映出CPU的使用状况了。本文程序中的关键是相关键值的读取和反映输出到监视器上。  (二)编程实践;  (1)设计程序界面;  为了达到较小CPU占有率,必须将应用程序设计的既能够全面反映问题,又能够尽量的小。首先建立一个标准exe工程,将窗体命名为frmmain,borderstyle属性为3-fixed,caption属

3、性为空白,添加一个frame控件“frame1”,caption属性为空白,添加picturebox控件,前景色为绿色,背景色为浅红色,添加一个定时器控件“timer”,interval设置为100,enabled为true,其他的属性采用系统的默认值即可,调整窗体和控件到适当位置和适当大小,效果如图2所示即可。  双击窗体frmmain,写入以下代码:  OptionExplicit  PrivateConstLP-HT-CAPTION=2  PrivateConstWM-NCLBUTTONDOWN=&HA1  PrivateDeclareFunct

4、ionReleaseCaptureLib“user32"()AsLong  PrivateDeclareFunctionSendMessageLib“user32"Alias“SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong  PrivateCPUAsNewCPUUsage  PrivateAvgAsLong  PrivateSumAsLong  PrivateIndexAsLong  PrivateSubForm_Load()  Me.

5、Caption=App.Title‘初始化应用程序标题栏  CPU.InitCPUUsage  EndSub  PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)‘程序结束前关闭定时器和释放内存  Timer.Enabled=False  SetCPU=Nothing  Cancel=0  EndSub  PrivateSubFrame1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)‘用左键可以拖动程

6、序  CallForm_MouseDown(Button,Shift,X,Y)  EndSub  PrivateSubpctPrg_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)‘右键单击退出程序  IfButton=2Then  UnloadMe  End  EndIf  CallForm_MouseDown(Button,Shift,X,Y)  EndSub  PrivateSubTimer_Timer()‘利用定时器周期性的读取资源状况  DimtmpAsLong  tm

7、p=CPU.GetCPUUsage  Me.Caption=App.Title&FormatPercent(tmp/100)‘  ‘在标题栏用百分比数字形式反映占用率  Sum=Sum+tmp  Index=Index+1  Avg=Int(Sum/Index)  pctPrg.Cls  pctPrg.Line(0,0)-(tmp,18),,BF  pctPrg.Line(Avg,0)-(Avg,18),&HFF  pctPrg.Line(Avg+1,0)-(Avg+1,18),&HFF  ‘用图式形式反映占用率  EndSub  PrivateSub

8、Form_MouseDown(ButtonAsInteger,ShiftAsInteger,X

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。