在python中发现所有窗口的exe路径

我使用下面的代码来确定前台窗口并找到创建它的.exe文件的路径.

hwnd = win32gui.GetForegroundWindow()
_, pid = win32process.GetWindowThreadProcessId(hwnd)
hndl = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ, 0, pid)
path = win32process.GetModuleFileNameEx(hndl, 0)
print path

这适用于谷歌Chrome,PyCharm,Filezilla等Windows,但该行

path = win32process.GetModuleFileNameEx(hndl, 0)

抛出错误

pywintypes.error: (299, 'GetModuleFileNameEx', 'Only part of a ReadProcessMemory or WriteProcessMemory request was completed.')

用于Windows资源管理器,计算器,命令提示符等

我相对较新的编码和python,并不能解决为什么会这样,以及有什么区别.

最佳答案 该错误表示您正在64位Windows上的WOW64仿真器中执行32位代码,并尝试获取有关64位进程的信息.

为了解决这个问题,您应该切换到运行64位代码.所以,你需要64位Python.

点赞