我知道我可以通过GetWindowThreadProcessId(hwnd)得到processId,
pid = win32process.GetWindowThreadProcessId(hwnd)
但是,如何使用pid获取进程名称(例如:chrome.exe,explorer.exe等)
由于
答案 0 :(得分:3)
如果您愿意使用第三方模块,可以使用psutil
首先你需要安装它:
pip install psutil
然后,假设您有一个进程ID,那么您只需要这样做:
import psutil
PID = 5220
print(psutil.Process(PID).name())
就我而言,这会打印:
python.exe
答案 1 :(得分:0)
你正在使用win32模块,所以你可以这样做:
import win32api
import win32process
import win32con
.....
pid = win32process.GetWindowThreadProcessId(hwnd)
handle = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ, False, pid[1])
proc_name = win32process.GetModuleFileNameEx(handle, 0)
顺便说一句,它完成如下:
http://nullege.com/codes/show/src%40f%40p%40fpdb-sql-HEAD%40pyfpdb%40WinTables.py/135/win32process.GetWindowThreadProcessId/python
对于跨平台解决方案,我可能会尝试使用其他人已经提到过的psutil。您还可以查看以下内容:
https://www.blog.pythonlibrary.org/2010/10/03/how-to-find-and-list-all-running-processes-with-python/