您的位置:首页 > 其它

枚举CE中当前进程及进程详细信息的方法

2010-02-06 12:41 344 查看
这里用到了ToolHelp.dll提供的API来完成此功能,下面列出这些API及其描述,具体请参考MSDN:

CreateToolhelp32Snapshot

创建系统快照,在参数2中指定快照的对象,对象包括进程、线程、DLL、堆。因为系统内这些对象的生存期可能非常短,所以形成快照后的数据不一定完全反映真实情况。函数返回快照的句柄。

CloseToolhelp32Snapshot

关闭快照对象。参数为句柄。

Module32First

函数获得指定进程中第一个模块(DLL)的信息。信息包括模块的ID、引用计数、首地址、大小、路径等。

Module32Next

与上一个函数结合使用,获得下一个模块的信息。

Process32First

函数获得当前系统快照对象中第一个进程信息。

Process32Next

与上一个函数结合使用,获得下一个进程的信息。Heap32First

函数获得指定进程中指定堆内部的第一个块的信息。信息包括块的首地址、块大小、块标志等。

Heap32Next

与上一个函数结合使用,获得下一个块的信息。

Heap32ListFirst

函数获得指定进程中第一个堆的信息。

Heap32ListNext

与上一个函数结合使用,获得下一个堆的信息。

Thread32First

函数获得指定进程中第一个线程的信息。信息包括线程ID、优先级、创建此线程的ID、访问键。

Thread32Next

与上一个函数结合使用,获得下一个线程的信息。

注意:CreateToolhelp32Snapshot函数将当前系统的进程、线程、DLL、堆的信息全部复制到一个缓冲区里。所以在执行此函数后再调用其它Toolhelp函数,所得到的信息未必是准确的。比如得到的线程句柄在使用时异常,得到模块地址时模块已经释放,所以要在代码里面加上异常处理。关闭快照对象只能用CloseToolhelp32Snapshot,不能用CloseHandle。如果没有ToolHelp.dll可以到coredll.dll里面找

转自http://yulinlu.blog.163.com/blog/static/58815698200811311029616/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: