默认情况下 win+d 会将两个屏幕的所有窗口全部最小化,如果有两个屏幕,另一个屏幕是监视屏,会造成不便。
可以使用 autohotkey ,拦截 win 键,自定义逻辑:
安装 autohotkey
官网:https://www.autohotkey.com/
创建脚本
创建脚本默认在 Document
文档目录下的 AutoHotKey
文件夹
脚本
#NoTrayIcon
$#d:: ; 拦截Win+D并阻止默认行为
; 获取主显示器的工作区域坐标(假设主显示器在右侧)
SysGet, MonitorPrimary, MonitorPrimary
SysGet, MonitorWorkArea, MonitorWorkArea, %MonitorPrimary%
mainLeft := MonitorWorkAreaLeft
mainRight := MonitorWorkAreaRight
WinGet, WinList, List ; 获取所有窗口列表
Loop %WinList% {
WinID := WinList%A_Index%
WinGetTitle, Title, ahk_id %WinID%
if (Title = "" || Title = "Program Manager") ; 跳过桌面和无效窗口
continue
; 获取窗口位置并计算中心点
WinGetPos, X, Y, W, H, ahk_id %WinID%
WinCenterX := X + (W // 2)
WinCenterY := Y + (H // 2)
; 判断窗口是否在主显示器(右侧)
if (WinCenterX >= mainLeft && WinCenterX <= mainRight) {
WinMinimize, ahk_id %WinID% ; 仅最小化主显示器的窗口
}
}
return
开机启动
创建一个快捷方式,将其放入到开机自启动文件夹即可