python为什么win32process.GetWindowThreadProcessId()PID返回一个列表

时间:2018-02-18 22:13:14

标签: python system active-window

我尝试在python中找到当前活动窗口的可执行文件的路径。 我不熟悉系统变量,不知道我应该做什么,我找到了一些解决方案,并与他们一起练习。

首先我尝试获取当前活动窗口 并找到相关的PID然后找到路径。

import psutil
import win32process
import win32gui

window = win32gui.GetForegroundWindow()
pid = win32process.GetWindowThreadProcessId(window)
active_window_path = psutil.Process(pid[1]).exe()


print("Active window: %s" % str(get_active_window()))

当我使用win32process获取PID时,它会返回一个列表。为什么? 我必须选择列表的第一个元素才能得到正确的结果。 不是PID应该是一个整数?为什么要返回列表?为什么第二个元素是正确的而不是第一个?

1 个答案:

答案 0 :(得分:0)

它是[GitHub]: mhammond/pywin32 - Python for Windows (pywin32) Extensions的一部分,它是 Python WINAPI 上的包装。

将您的代码(相关部分)更改为以下内容(非强制性,仅为了便于阅读):

tid, pid = win32process.GetWindowThreadProcessId(window)
active_window_path = psutil.Process(pid).exe()