自己写了一个任务管理器,是因为发现冰刃不能在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);
}