使用Module32First/Next从64位进程中枚举32位进程模块
Using Module32First/Next to Enumerate 32bit Process Modules from 64bit Process
以下是代码:
hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE32, dwPID );
if( hModuleSnap == INVALID_HANDLE_VALUE )
{
return( r_mi );
}
me32.dwSize = sizeof( MODULEENTRY32 );
if( !Module32First( hModuleSnap, &me32 ) )
{
CloseHandle( hModuleSnap );
return( r_mi );
}
do
{
MessageBoxA(0,me32.szModule,0,0);
} while( Module32Next( hModuleSnap, &me32 ) );
问题是,当尝试从64位进程枚举32位进程的模块时,只列出x64模块。
来自MSDN的TH32CS_SNAPMODULE32:从64位进程调用时,包括快照中th32ProcessID中指定的进程的所有32位模块。
但是,它仍然只列出x64模块
有人知道这方面的变通办法吗?
您必须使用TH32CS_SNAPMODULE32|TH32CS_StNAPMODULE感谢Hans Passant解决了这个问题。
相关文章:
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- 错误:从"int"到枚举c++的转换无效
- C++中构造函数中的枚举
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 枚举进程模块在有效句柄上返回无效句柄
- 通过进程模块C 枚举时,访问被拒绝
- 枚举已加载特定 DLL 的进程
- 如何枚举进程中所有命名管道的名称
- Win32:如何在C++中枚举属于进程的所有线程
- C++/Win32 枚举属于我的进程的窗口并关闭它们
- 如何在不枚举进程的情况下,通过c++从进程id中获取进程名
- 如何根据进程id枚举所有子窗口句柄?
- 使用Module32First/Next从64位进程中枚举32位进程模块
- 枚举进程句柄,奇怪的问题