HMODULE hMods[1024];
HANDLE hProcess;
DWORD cbNeeded;
unsigned int i;
CFile file;
file.Open(L"d:\\mods.txt", CFile::modeCreate | CFile::modeReadWrite);
// Get a list of all the modules in this process.
// 关键在于获取当前进程的句柄
// 直接使用 theApp.m_hInstance 或者
// AfxGetInstanceHandle() 获取的句柄
// 在运行 EnumProcessModules() 函数时
// 会到的“句柄无效”的错误
// GetLastError() 返回 6
// 因此,此处首先使用 GetCurrentProcessId()
// 获取进程 Id,再利用 OpenProcess()
// 获取句柄即可
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, GetCurrentProcessId());
if (NULL == hProcess)
return;
if (EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
{
for (i = 0; i < (cbNeeded / sizeof(HMODULE)); i++)
{
TCHAR szModName[MAX_PATH];
// Get the full path to the module's file.
if (GetModuleFileNameEx(hProcess, hMods[i], szModName,
sizeof(szModName) / sizeof(TCHAR)))
{
// Print the module name and handle value.
CStringA modName(szModName);
file.Write(modName, modName.GetLength());
file.Write("\r\n", 2);
//_tprintf(TEXT("\t%s (0x%08X)\n"), szModName, hMods[i]);
}
}
}
DWORD lastError = GetLastError();
file.Close();
获取当前进程所加载的模块列表
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 获取当前语言 ios系统中,本地语言是存在NSUserDefaults中的一个Key-Value;其中Value是...