恢复 window 而不设置为前台

Restore window without setting to foreground

我只能拍摄非标志性(未最小化)的图像 window,所以如果我看到一个图像,我会恢复它,但随后它会弹出到前景。现在我有这个解决方案:

if win32gui.IsIconic(hwnd):
    active_hwnd= win32gui.GetForegroundWindow()
    win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
    win32gui.SetForegroundWindow(active_hwnd)

但有时闪烁会中断其他 运行 进程。如何恢复 window,并将其设置为 windows z 顺序中的最后一个?

SetWindowPos 设置 Z 顺序。与 HWND_BOTTOM.

一起使用

在 win32 中搜索后,我找到了这个解决方案:

if win32gui.IsIconic(hwnd):
        win32gui.ShowWindow(hwnd, win32con.SW_SHOWNOACTIVATE)