枚举进程加载的所有的模块

本文介绍了一个自定义的任务管理器函数,用于在Windows Vista环境下,通过进程ID遍历并列出所有加载的模块。该函数利用CreateToolhelp32Snapshot和Module32First/Module32Next API进行模块枚举,并将模块路径添加到列表框中,以方便分析进程的模块加载情况。
摘要由CSDN通过智能技术生成

 自己写了一个任务管理器,是因为发现冰刃不能在vista下面使用,但是因为工作原因,经常要分析进程加载的模块,但是还没有特别好用的工具,要不乱七八糟的功能太乱,要不就是启动太慢,下面是根据进程id枚举进程加载的所有模块的一个函数

void GetAllModules(DWORD dW/*进程id*/)
{
 CString strModule;
 BOOL                     bFound             =   FALSE;    
 HANDLE                 hModuleSnap   =   NULL;    
 MODULEENTRY32   me32                 =   {0};    
 hModuleSnap   =   CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dW);    
 if   (hModuleSnap   ==   INVALID_HANDLE_VALUE)   
 {
  return;    
 }
 me32.dwSize   =   sizeof(MODULEENTRY32);     
 if   (Module32First(hModuleSnap,   &me32))    
 {    
  do    
  {    
   strModule.Format("%s",me32.szExePath);
   int nCount=m_list.InsertItem(0,"");//将枚举到的模块添加到列表框中
   m_list.SetItemText(nCount,0,strModule);
  }    
  while   (/*!bFound   &&   */Module32Next(hModuleSnap,   &me32));    
 }    
 CloseHandle   (hModuleSnap);    
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值