Chinaunix首页 | 论坛 | 博客
  • 博客访问: 537503
  • 博文数量: 576
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5020
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(576)

文章存档

2011年(1)

2008年(575)

我的朋友

分类:

2008-10-14 14:54:08


一、实现原理:
首先通过CreateToolhelp32Snapshot函数创建一个进程的快照,然后通过调用Process32First使用快照返回的句柄对进程进行遍历,相关的信息存放在PROCESSENTRY32结构类型的实例中,通过调用内部的一个函数GetProcessModule,获取对应的进程的模块名称,然后通过对进程地址空间信息的读取,从而获取相应的线程的ID等的信息。

二、主要实现代码:
获取进程地址空间内的相关信息:
hProcess = OpenProcess (PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
pfGetProcessMemoryInfo(hProcess,pmc,sizeof(pmc));
获取进程的模块信息函数:
BOOL CEmuteFileDlg::GetProcessModule(DWORD dwPID, DWORD dwModuleID,
LPMODULEENTRY32 lpMe32, DWORD cbMe32)
具体细节内容还是看代码吧!

三、后记:
我感觉信息获取的不够完整,比如说,我很想知道怎么才能获取进程的线程的模块名称,不知道那位大侠不吝赐教!
使用环境:win2k advance server + vc6.0 + vs5


[代码性质] VC完整应用程序代码
[代码作者] taishan_sword
[文件大小] 48K
[更新日期] 2004-1-8 23:38:00
[下载次数] 5241


--------------------next---------------------

阅读(298) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~