使用 Visual Studio 2022 (VC++ 2022) 创建 MFC 对话框应用程序
支持查找32位和64位进程(使用TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32同时枚举两种模块)
输入进程名称(例如notepad.exe),点击“查找进程”按钮
在列表控件(ListCtrl)中显示该进程的所有模块名称、基址、大小、路径
1. 资源部分(在资源编辑器中添加控件)
在对话框资源(ID 为IDD_GETMODULEBASE_DIALOG)中添加以下控件:
| 类型 | ID | Caption | 其他属性 |
|---|---|---|---|
| Edit Control | IDC_EDIT_PROCESS | (空) | |
| Button | IDC_BTN_SEARCH | 查找进程 | |
| List Control | IDC_LIST_MODULES | (空) | View: Report, 加四列(见代码) |
| Static | IDC_STATIC_TIP | 输入进程名(如 notepad.exe) |
2. GetModuleBaseDlg.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
3. GetModuleBaseDlg.cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
|
4. 项目配置(VS2022)
项目使用Unicode字符集。
使用 MFC:项目属性 → 常规 → 使用 MFC → “在共享 DLL 中使用 MFC” 或 “在静态库中使用 MFC”。
5.使用方法
- 运行程序
- 在编辑框输入进程可执行文件名,例如:
notepad.exe、chrome.exe - 点击“查找进程”
- 列表中会显示该进程加载的所有模块(包括主模块和 DLL)
这样就完整实现了你要求的功能,支持 32 位和 64 位进程的模块枚举。