我正在使用下面的代码来获取有关正在运行的进程的一些信息。但是,我似乎无法使用模块名称来执行功能。例如,一旦下面的代码到达win32api.GetModuleHandle(fileName)
,它就会崩溃,说明the specified module could not be found
. 关于我如何解决这个问题的任何建议?非常感谢!
代码:
processName = "MyProcess"
PROCESS_ALL_ACCESS = 0x1F0FFF
hwnd = win32ui.FindWindow(None, processName).GetSafeHwnd()
pid = win32process.GetWindowThreadProcessId(hwnd)[1]
processHandle = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, pid)
modules = win32process.EnumProcessModules(processHandle)
for module in modules:
fileName = win32process.GetModuleFileName(processHandle, module)
print('{:08X}'.format(module))
print(fileName)
print(win32api.GetModuleHandle(fileName))
processHandle.close()
编辑:
第一个答案让我意识到我的“找不到指定的模块”有点模棱两可。这是一个 win32 模块错误,而不是 python 模块错误。一切都很好地导入了python(为简洁起见,我只是省略了导入)。问题出在线路上print(win32api.GetModuleHandle(fileName))
。更详细的错误是pywintypes.error: (126, 'GetModuleHandle', 'The specified module could not be found.')