Substitute of EnumProcessModulesEx?
Substitute of EnumProcessModulesEx?
我试图迭代当前在64位机器上运行的进程,EnumProcessModules与32位程序一起工作很好,但与64位程序没有任何好处,我尝试用devc++实现EnumProcessModulesEx,我正在使用(没有visualstudio),但无法使头文件工作,看到这个问题,所以在想是否有另一种出路?
在我的程序中,我需要知道由特定exe执行的进程是否正在运行,该进程可以是32位或64位,因此需要检查两者。
EnumProcessModules
确实要求调用进程使用与目标进程相同的体系结构(32位vs. 64位)。但是,对于您的用例,您不需要该函数。
创建当前进程表的快照,然后迭代该快照,查找进程名,这样更有效(并且不会受到竞争条件的影响…):
-
调用
CreateToolhelp32Snapshot
创建进程表的快照 -
使用
Process32First
和Process32Next
迭代快照 -
对于快照中的每个元素,检查
szExeFile
字段(PROCESSENTRY32
结构的)以获得可执行文件名。
您可能希望对名称进行不区分大小写的比较,因为Windows上的文件名是不区分大小写的。
相关文章:
- 没有找到相关文章