咨询分屏模式下切换可见非最小化窗口的快捷方式及脚本实现方案
咨询分屏模式下切换可见非最小化窗口的快捷方式及脚本实现方案
太懂你这种痛点了!分屏开着好几个窗口干活,用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
相关产品推荐
相关产品推荐

