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

咨询分屏模式下切换可见非最小化窗口的快捷方式及脚本实现方案

咨询分屏模式下切换可见非最小化窗口的快捷方式及脚本实现方案

太懂你这种痛点了!分屏开着好几个窗口干活,用Alt+Tab或者Win+Tab总弹出个大菜单打断思路,就想悄咪咪直接切到下一个可见窗口是吧?我来给你分享两种可行的方案:

一、原生系统的快捷方式尝试

虽然你已经用过Alt+Esc,但还是得提一嘴——它确实是Windows里少数不弹菜单、直接循环切换所有非最小化窗口的原生快捷键,而且只会在当前桌面的窗口里循环。不过它的切换顺序是按窗口打开的先后排的,可能有时候不是你预期的“分屏窗口优先”,但胜在完全原生不用装任何额外工具。

另外补个小细节:如果你是用Windows的Snap功能固定了分屏窗口,其实可以试试按住Win键再按~(Tab键上方的波浪键),不过这个是切换当前程序的多个窗口,更适合同一软件开多页的场景,可能不是你要的,但也可以试试。

二、脚本实现自定义切换(AutoHotkey方案)

如果原生的Alt+Esc循环顺序不合你意,那用AutoHotkey写个小脚本绝对是最优解,我给你整了个简单好用的版本:

; 这里把快捷键设为Win + Q,你可以改成自己顺手的,比如#!q就是Win+Alt+Q
#q::
    ; 获取当前桌面所有窗口列表
    WinGet, windowList, List, , Program Manager
    ; 记录当前激活的窗口ID
    WinGet, activeID, ID, A
    foundNextWindow := false
    Loop, %windowList%
    {
        currentID := windowList%A_Index%
        ; 跳过最小化的窗口和当前已激活的窗口
        WinGet, winState, MinMax, ahk_id %currentID%
        if (winState = 0 && currentID != activeID)
        {
            ; 激活找到的下一个符合条件的窗口
            WinActivate, ahk_id %currentID%
            foundNextWindow := true
            break
        }
    }
    ; 如果循环完没找到下一个,就激活第一个非最小化窗口(避免卡壳)
    if (!foundNextWindow)
    {
        Loop, %windowList%
        {
            currentID := windowList%A_Index%
            WinGet, winState, MinMax, ahk_id %currentID%
            if (winState = 0)
            {
                WinActivate, ahk_id %currentID%
                break
            }
        }
    }
return

这个脚本的逻辑很直白:按下你设定的快捷键(比如Win+Q),会自动跳过所有最小化的窗口,直接切换到下一个可见的非最小化窗口,全程完全没有任何弹出菜单,完美贴合你的需求。

用起来也超简单:

  • 先装个AutoHotkey(免费的,官网直接下就行)
  • 把上面的代码复制到记事本里,保存成SwitchVisibleWindows.ahk(注意后缀是.ahk,不是.txt)
  • 双击运行这个脚本,右下角托盘会出现个H图标,这时候快捷键就生效了
  • 要是想开机自动启动,直接把这个脚本的快捷方式拖到Win+R输入shell:startup打开的文件夹里就行

备注:内容来源于stack exchange,提问作者Shudhesh Velusamy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:54:28