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();
获取当前进程所加载的模块列表
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 获取当前语言 ios系统中,本地语言是存在NSUserDefaults中的一个Key-Value;其中Value是...