任务管理器可以看到进程的cpu占用率, 进程的用户名, 进程的内存使用 等信息.我想知道这个是用什么实现的. 而且任务管理器占用资源极少, 我用phd函数也能取得进程的信息, 但是非常耗费资源, 想知道windows的任务管理器是怎么取得进程的各种信息的.特别是进程的cpu占用率, 如果用phd函数来一次性取各进程的cpu占用率, 一般cpu都是被自己的进程全部占满, 自己进程的cpu占用率100, 其他进程的cpu占用率都是0, 不能达到监控系统进程状态的目的. 如果不用phd函数实现, 用EnumProcess, 快照等方法, 又不能得到各进程的cpu利用率.
ExitProcess
GetCurrentProcess
GetCurrentProcessId
GetCurrentThreadId
GetPriorityClass
GetProcAddress
GetProcessHeap
GetStartupInfoW
GetThreadTimes
OpenProcess
SetPriorityClass
SetProcessShutdownParameters
TerminateProcess
我注意到其中一个函数 GetThreadTimes ,我想这也许是一个值得下手的地方,通过枚举进程的线程信息来并根据线程占用CPU的时间和来进行计算,虽然不完全准确,但应该值得研究
不过还是谢谢你, 你教会了我分析别人程序的方法^_^