如何用Delphi监控CPU使用情况(100分)

  • 主题发起人 主题发起人 rick_liran
  • 开始时间 开始时间
R

rick_liran

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在想在NT下用Delphi编写一个类似于任务管理器的程序,
请问如何获取当前CPU的使用情况呢?
请各位高手指教。
 
Performance Data Helper 就是nt下性能监视器用他写的
帮助文件在 Borland/Borland Shared/mshelp/pdh.hlp
 
最好用bcb 写,

入用delphi没有他的unit,很多数据结构要自己从c的头文件翻译
 
介绍的不详细
 
唉,说实在话这个我没弄过,不过我知道是用他写

明天要是有时间我再研究研究
 
我有vb的原程序,需要留下mail.
 
非常感谢各位。

g622,我的Email是rick_liran@263.net
希望能尽快看到你的原程序。
再次表示感谢。
 
g622,原程序我已收到,首先在此表示感谢。

我已能够在Win98的注册表中成功的搜索到
HKEY_DYN_DATA
PerfStats/StatData
KERNEL/CPUUsage
并能监视到CPU性能变化时,注册表中的变化。

可在NT下,却不能打开HKEY_DYN_DATA
而且也找不到HKEY_PERFORMANCE_DATA
估计是我太笨笨。

希望能再指点一下,谢谢。
 
HKEY_DYN_DATA 是 win9x下的
HKEY_PERFORMANCE_DATA 是 nt 下的

在nt下访问performance data复杂的多

在nt下访问performance data有2种方法:通过api 和 通过注册表

通过api简单一点,但是需要pdh.dll支持,而这个dll要另外装,我到现在还没有
找到他

通过注册表找麻烦很多,首先要查找
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib
得到对象的序号

然后根据序号查询 HKEY_PERFORMANCE_DATA 下的 (序号) 得到一大块数据
这块数据是2进制的,要通过多种结构的查找才找到你要的数据

注册表的例子在 MSDN 的 sample 里面查找一个叫 plist.cpp 的文件,
该例子理解还算比较简单
 
PiPi老兄,谢谢你提供的思路。

不过,我还是不太明白,能否将这两种方法再介绍的详细一些,
最好有一些关键性代码。
另外,我在MSDN中没有找到plist.cpp文件,不知道是否是使
用D版的缘故,你是否能给我寄一份?

Email: rick_liran@263.net,谢谢。
 
plist.cpp没有copy进硬盘,在第1张cd 的 sample 下找

api方式我找不到pdh.dll,看pdh.hlp用api方式简单

注册表的方式太繁,用delphi很不方便,是一大块数据,用好几个不规则的结构
用指针指来指去才能得到需要的数据,说也很难说明白了。

还是去找个控件吧
 
g622,
你是不是有一个例子,能寄给我或告诉我下载地址可以吗?谢谢!
zhfhe@szskzj.com
 
g622,能寄给我吗?
zws13@sina.com
 
哎,定时动态读取注册表就可以啦,很很简单的,《电脑商情报》有全部原程序啊。
你是不是想做一个程序运行后别人看系统资源占用率为99.9%?
 
多人接受答案了。
 
后退
顶部