✨ 点击图片换一张(老婆/猫/狗/二次元) ✨
; 窗口分屏管理工具
; 禁用单实例运行,允许多开
#SingleInstance, Force
; 设置热键响应优先级
#InstallKeybdHook
#UseHook On
; 设置托盘菜单提示
Menu, Tray, Tip, 窗口分屏工具`n使用说明见菜单
; 添加托盘菜单说明
Menu, Tray, Add, 使用说明, ShowHelp
Menu, Tray, Add
Menu, Tray, Standard ; 添加标准菜单项
; 获取屏幕尺寸(考虑多显示器)
SysGet, ScreenWidth, 78
SysGet, ScreenHeight, 79
SysGet, MonitorCount, 80
; 定义边距(可调整)
margin := 5
halfMargin := margin // 2
; 计算各种分屏尺寸(考虑边距)
halfWidth := (ScreenWidth - margin * 3) // 2
halfHeight := (ScreenHeight - margin * 3) // 2
thirdWidth := (ScreenWidth - margin * 4) // 3
twoThirdsWidth := thirdWidth * 2 + margin
; 主热键配置(使用 Win+方向键,与Windows原生分屏类似但更强大)
#Left:: MoveWindow(0, 0, halfWidth, ScreenHeight) ; Win+左:左半屏
#Right:: MoveWindow(halfWidth + margin, 0, halfWidth, ScreenHeight) ; Win+右:右半屏
#Up:: MoveWindow(0, 0, ScreenWidth, halfHeight) ; Win+上:上半屏
#Down:: MoveWindow(0, halfHeight + margin, ScreenWidth, halfHeight) ; Win+下:下半屏
; 四分之一屏幕
#+Left:: MoveWindow(0, 0, halfWidth, halfHeight) ; Win+Shift+左:左上角
#+Right:: MoveWindow(halfWidth + margin, 0, halfWidth, halfHeight) ; Win+Shift+右:右上角
#+Up:: MoveWindow(0, halfHeight + margin, halfWidth, halfHeight) ; Win+Shift+上:左下角
#+Down:: MoveWindow(halfWidth + margin, halfHeight + margin, halfWidth, halfHeight) ; Win+Shift+下:右下角
; 三分之一屏幕
#1:: MoveWindow(0, 0, thirdWidth, ScreenHeight) ; Win+1:左1/3
#2:: MoveWindow(thirdWidth + margin, 0, thirdWidth, ScreenHeight) ; Win+2:中1/3
#3:: MoveWindow(thirdWidth * 2 + margin * 2, 0, thirdWidth, ScreenHeight) ; Win+3:右1/3
; 三分之二屏幕
#+1:: MoveWindow(0, 0, twoThirdsWidth, ScreenHeight) ; Win+Shift+1:左2/3
#+3:: MoveWindow(thirdWidth + margin, 0, twoThirdsWidth, ScreenHeight) ; Win+Shift+3:右2/3
; 居中显示(自定义大小)
#c:: CenterWindow(800, 600) ; Win+C:居中(800x600)
#+c:: CenterWindow(1000, 700) ; Win+Shift+C:居中(1000x700)
; 最大化/还原切换
#m::
WinGet, isMaximized, MinMax, A
if (isMaximized = 1)
WinRestore, A
else
WinMaximize, A
return
; 移动到下一个显示器(多显示器支持)
#n::
if (MonitorCount > 1) {
WinGet, currentHWND, ID, A
WinGetPos, winX, winY, winWidth, winHeight, A
; 简单实现:移动到右侧显示器
newX := winX + ScreenWidth
WinMove, A, , newX, winY, winWidth, winHeight
}
return
; 显示帮助信息
#h::
ShowHelp:
MsgBox, 64, 窗口分屏工具 - 使用说明,
( LTrim
**窗口分屏热键说明:**
??? 基本分屏:
Win + ← 左半屏
Win + → 右半屏
Win + ↑ 上半屏
Win + ↓ 下半屏
??? 四分之一分屏:
Win + Shift + ← 左上角
Win + Shift + → 右上角
Win + Shift + ↑ 左下角
Win + Shift + ↓ 右下角
?? 三等分屏:
Win + 1 左1/3屏
Win + 2 中1/3屏
Win + 3 右1/3屏
Win + Shift + 1 左2/3屏
Win + Shift + 3 右2/3屏
?? 其他功能:
Win + C 居中显示(800x600)
Win + Shift + C 居中显示(1000x700)
Win + M 最大化/还原切换
Win + N 移动到下一个显示器
Win + H 显示此帮助
ESC 退出程序
注:所有分屏都自动保留5像素边距
)
return
; 退出程序
Esc::
MsgBox, 4, 退出确认, 确定要退出窗口分屏工具吗?
IfMsgBox, Yes
ExitApp
return
; 移动窗口到指定位置和大小的函数
MoveWindow(x, y, width, height) {
WinGet, activeHwnd, ID, A
WinMove, A, , x, y, width, height
; 添加动画效果(可选)
; DllCall("AnimateWindow", "UInt", activeHwnd, "Int", 150, "UInt", 0x40000)
}
; 居中显示窗口的函数
CenterWindow(width, height) {
WinGetPos, , , winWidth, winHeight, A
x := (A_ScreenWidth - width) // 2
y := (A_ScreenHeight - height) // 2
WinMove, A, , x, y, width, height
}
; 托盘图标双击显示帮助
TrayClick:
if (A_ThisMenuItem = "使用说明")
Gosub, ShowHelp
return