You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过pygetwindow原生命令实现窗口取消最大化?

解决pygetwindow无法取消窗口最大化的问题

pygetwindow库的window.maximized = False在部分场景下可能无法生效,这是因为其对窗口状态的封装存在局限性。要原生实现取消最大化且不依赖pyautogui,可以直接调用其底层依赖的Windows API(win32gui)来完成,具体步骤如下:

  • 首先确保安装pywin32库(pygetwindow在Windows平台依赖它):

    pip install pywin32
    
  • 使用以下代码取消窗口最大化并恢复可调整状态:

    import pygetwindow as gw
    import win32gui
    import win32con
    
    # 通过标题获取目标窗口
    target_window = gw.getWindowsWithTitle("你的目标窗口标题")[0]
    
    # 检查窗口是否处于最大化状态
    if target_window.isMaximized:
        # 调用Windows API恢复窗口(取消最大化)
        win32gui.ShowWindow(target_window._hWnd, win32con.SW_RESTORE)
        # 刷新窗口状态,确保pygetwindow能获取到最新状态
        target_window.update()
    
    # 现在可以正常调整窗口大小和位置了
    target_window.resizeTo(800, 600)
    target_window.center()
    

说明

  • target_window._hWnd是pygetwindow窗口对象内部存储的系统窗口句柄,直接传递给win32gui.ShowWindow可以调用原生系统接口。
  • win32con.SW_RESTORE是Windows系统定义的窗口状态常量,用于将最大化/最小化的窗口恢复到之前的正常状态,完全原生,无需模拟用户操作。

内容的提问来源于stack exchange,提问作者Coding Genius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:53:19