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

python win32process.GetWindowThreadProcessId()PID返回一个列表,python,system,active-window,Python,System,Active Window,我试图在python中找到当前活动窗口的可执行文件路径。 我不熟悉系统变量,也不知道应该做什么,我找到了一些解决方案并进行了实践 首先,我尝试获取当前活动窗口 然后找到相关的PID和路径 import psutil import win32process import win32gui window = win32gui.GetForegroundWindow() pid = win32process.GetWindowThreadProcessId(window) 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()))
当我用Win32 Process获取PID时,它会返回一个列表。为什么? 我必须选择列表中的第一个元素才能得到正确的结果。 PID不应该是整数吗?为什么它会返回一个列表?为什么第二个元素是正确的而不是第一个呢?

它是的一部分,是WinAPI上的Python包装

  • (这是我能找到的最接近官方pywin32文档)包装
  • 返回由2个整数组成的元组:
    • 线程ID(tid)
    • 进程ID(pid)
将代码(相关部分)(非强制性,仅为可读性)更改为:

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