免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:易道云信息技术研究院
上一个内容:58.模块列表界面
以 58.模块列表界面 它的代码为基础进行修改
效果图:
CWndINC.h文件的修改:
void SetProcess(unsigned Pid, CString& wExe, bool bFirst = false);
CWndModuleList.h文件的修改:
void GetModList(DWORD Pid);
CWndModuleList.cpp文件的修改:
#include <TlHelp32.h>
void CWndModuleList::GetModList(DWORD Pid)
{
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, Pid);
if (hSnap != INVALID_HANDLE_VALUE) {
MODULEENTRY32 modl{ sizeof(MODULEENTRY32) };
BOOL BMORD = Module32First(hSnap, &modl);
while (BMORD) {
CString txt;
txt.Format(L"%X", modl.hModule);
LstModule.InsertItem(0, modl.szModule);
LstModule.SetItemText(0, 1, txt);
txt.Format(L"%X", modl.modBaseSize);
LstModule.SetItemText(0, 2, txt);
LstModule.SetItemText(0, 3, modl.szExePath);
BMORD = Module32Next(hSnap, &modl);
}
}
CloseHandle(hSnap);
}
CWndINC.cpp文件的修改:
void CWndINC::SetProcess(unsigned Pid, CString& wExe, bool bFirst)
{
if (bFirst) {
UExe = wExe;
modPage[0].GetModList(Pid);
}else {
UExeRoot = wExe;
modPage[1].GetModList(Pid);
}
UpdateData(FALSE);
}
void CWndINC::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);
// TODO: 在此处添加消息处理程序代码
CDialogEx::OnSize(nType, cx, cy);
if (nType == 1 || !mTab)return;
CRect rect;
GetClientRect(&rect);
rect.top += 00;
rect.left += 0;
rect.bottom -= 130;
rect.right -= 50;
for (int i = 0; i < CurPage; i++) {
if (Pages[i]) {
Pages[i]->MoveWindow(&rect);
}
}
}