我使用下面的代码来确定前台窗口并找到创建它的.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.