从 PID 设置活动/前台窗口

Cas*_*uss 1 python subprocess pywin32

我正在尝试将程序(已知 PID)设置为顶部/活动/前景(不确定哪个最合适)。

PID设置为windows进程PID

    handle = win32api.OpenProcess( win32con.PROCESS_ALL_ACCESS,
                        False, pid)
    win32gui.SetForegroundWindow(handle)
    win32gui.SetActiveWindow(handle)
Run Code Online (Sandbox Code Playgroud)

我要么得到:

    pywintypes.error: (1400, 'SetForegroundWindow', 'Invalid window Handle.')

    pywintypes.error: (1400, 'SetActiveWindow', 'Invalid window handle.')
Run Code Online (Sandbox Code Playgroud)

我意识到这是处理程序中的问题,但我不确定我应该如何正确获取工作句柄。

Vas*_*bov 6

这项工作可以由 pywinauto 完成:

from pywinauto import Application
app = Application().connect(process=<pid>)
app.top_window().set_focus()
Run Code Online (Sandbox Code Playgroud)

但它可能不适用于最小化的应用程序。