ProcessView官方版是一个简单易用的进程遍历工具,本次带来源码资源下载,使用C++编辑器环境进行导入编辑即可,可以在进程列表栏目上查询进程模块,进程线程,进程窗口等信息,查看进程和线程的ID,基址和大小等项目,是编程人员根据进程来进行一系列操作的好帮手。
查询进程模块源码
//遍历模块信息,添加到列表
void CMyModuleInfoDlg::GetModuleInfo()
{
//拍进程快照
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,
m_ProcessId);
//获取快照失败,直接返回
if (INVALID_HANDLE_VALUE == hSnapshot)
{
return;
}
MODULEENTRY32 me32 = { 0 };
me32.dwSize = sizeof(MODULEENTRY32);
//遍历进程
if (Module32First(hSnapshot, &me32))
{
int nRow = 0;
CString strFmt;
do
{
//将模块路径加入列表
m_ListCtrl.InsertItem(nRow, me32.szExePath);
//将模块基地址加入列表
strFmt.Format(_T("0x%016X"), me32.modBaseAddr);
m_ListCtrl.SetItemText(nRow, 1, strFmt);
//将模块大小加入列表
strFmt.Format(_T("0x%016X"), me32.modBaseSize);
m_ListCtrl.SetItemText(nRow, 2, strFmt);
nRow++;
} while (Module32Next(hSnapshot, &me32));
}
//关闭句柄
CloseHandle(hSnapshot);