欢迎访问宙启技术站
智能推送

在Python中使用win32processEnumProcessModules()函数获取进程模块信息示例

发布时间:2023-12-16 16:48:47

在Python中,可以使用win32process.EnumProcessModules函数来获取指定进程的模块信息。这个函数会返回一个包含模块句柄的列表。

下面是使用win32process.EnumProcessModules函数获取进程模块信息的示例代码:

import win32api
import win32process
import win32con

# 获取指定进程的ID
process_id = win32process.GetProcessId(win32api.GetCurrentProcess())

# 打开进程,获取进程句柄
process_handle = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ, False, process_id)

# 获取进程模块信息
module_handles = win32process.EnumProcessModules(process_handle)

# 获取模块的数量
module_count = len(module_handles)

# 遍历模块句柄列表,获取模块信息
for i in range(module_count):
    module_handle = module_handles[i]
    module_file_path = win32process.GetModuleFileNameEx(process_handle, module_handle)
    
    # 打印模块路径
    print(f"Module {i+1}: {module_file_path}")

在这个示例中,首先使用win32process.GetProcessId函数获取当前进程的ID。然后使用win32api.OpenProcess函数打开这个进程,获取进程句柄。接下来,使用win32process.EnumProcessModules函数获取进程模块的句柄列表。然后,遍历这个列表,使用win32process.GetModuleFileNameEx函数获取模块的文件路径,并打印出来。

需要注意的是,为了使用win32process.EnumProcessModules函数,需要安装pywin32模块,可以使用pip install pywin32命令来安装。

通过运行这个示例代码,我们可以获取到当前进程的模块信息。当然,我们也可以将win32process.GetProcessId函数的参数改为指定进程的ID,从而获取其他进程的模块信息。