查找 python 中所有 windows 的 exe 路径问题
Issue finding exe path of all windows in python
我正在使用下面的代码来确定前景 window 并找到创建它的 .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
这适用于 windows,例如 Google、Chrome、PyCharm、Filezilla 等,但是行
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。
您可以使用 psutil 模块获取路径。
hwnd = win32gui.GetForegroundWindow()
_, pid = win32process.GetWindowThreadProcessId(hwnd)
path = psutil.Process(pid).exe()
我正在使用下面的代码来确定前景 window 并找到创建它的 .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
这适用于 windows,例如 Google、Chrome、PyCharm、Filezilla 等,但是行
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。
您可以使用 psutil 模块获取路径。
hwnd = win32gui.GetForegroundWindow()
_, pid = win32process.GetWindowThreadProcessId(hwnd)
path = psutil.Process(pid).exe()