在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,从而获取其他进程的模块信息。
