如何使用Python获取进程名称

时间:2017-01-27 16:50:43

标签: python windows

我知道我可以通过GetWindowThreadProcessId(hwnd)得到processId,

pid = win32process.GetWindowThreadProcessId(hwnd)

但是,如何使用pid获取进程名称(例如:chrome.exe,explorer.exe等)

由于

2 个答案:

答案 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/