【问题标题】:How can I get process name using Python如何使用 Python 获取进程名称
【发布时间】:2017-01-27 16:50:43
【问题描述】:

我知道我可以通过 GetWindowThreadProcessId(hwnd) 之类的方式获取 processId,

pid = win32process.GetWindowThreadProcessId(hwnd)

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

谢谢

【问题讨论】:

标签: python windows


【解决方案1】:

你正在使用 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/

【讨论】:

  • 非常感谢,这些链接可以帮助我获得更多信息。
【解决方案2】:

如果您愿意使用第 3 方模块,您可以通过 psutil 轻松做到这一点

首先你需要安装它:

pip install psutil

那么,假设你有一个进程 ID,你只需要这样做:

import psutil
PID = 5220
print(psutil.Process(PID).name())

在我的例子中,这会打印:

python.exe

【讨论】:

  • 谢谢,我知道psutil很好用,那我就用win32process来解决。
猜你喜欢
  • 2012-01-22
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
  • 2012-03-14
  • 1970-01-01
相关资源
最近更新 更多