; ^ 代表 ctrl
; ! 代表 alt
; # 代表 win
; + 代表 shift
; & 代表 连接两个按键(含鼠标按键) 合并成一个自定义热键
; --0----------------------------------------------------------------
; 通过修改注册表将左侧alt、ctrl互换
; 用ctrl+tab 替换 alt+tab
Ctrl & Tab:: AltTab
; --1----------------------------------------------------------------
; 快捷键:ctrl + tab
; 切换窗口,不切换标签页
; 在wps、chrome等应用中ctrl+tab为切换标签页,转换为切换窗口
; 在autohotkey中匹配多个ahk_exe
GroupAdd "CtrlTabGroup", "ahk_exe wps.exe"
GroupAdd "CtrlTabGroup", "ahk_exe wpp.exe"
GroupAdd "CtrlTabGroup", "ahk_exe et.exe"
GroupAdd "CtrlTabGroup", "ahk_exe Code.exe"
GroupAdd "CtrlTabGroup", "ahk_exe msedge.exe"
GroupAdd "CtrlTabGroup", "ahk_exe CMOA.exe"
GroupAdd "CtrlTabGroup", "ahk_exe chrome.exe"
#HotIf WinActive("ahk_group CtrlTabGroup")
^Tab::Send "^{Tab}" ; 发送 Ctrl+Tab 到系统(而不是 CtrlTabGroup)
#HotIf
; --2----------------------------------------------------------------
; 快捷键:ctrl + left 后退
; 快捷键:ctrl + right 前进
; 使用 【ctrl + 键盘左右】 替换 【alt + 键盘左右】,实现浏览器的后退、前进
GroupAdd "ChromeGroup", "ahk_exe chrome.exe"
GroupAdd "ChromeGroup", "ahk_exe msedge.exe"
#HotIf WinActive("ahk_group ChromeGroup")
^left:: !left
^Right:: !Right
#HotIf
; --3----------------------------------------------------------------
; 快捷键:ctrl + q
; ctrl + q 替换 alt + f4
; 关闭程序
^q:: Send "!{F4}"
; --4---------------------------------------------------------------
; 快捷键:ctrl +w
; 钉钉:ctrl + w 替换 alt + f4
#HotIf WinActive("ahk_exe DingTalk.exe")
^w:: Send "!{F4}"
#HotIf
; 微信:ctrl + w 替换 esc
#HotIf WinActive("ahk_exe WeChat.exe")
^w:: Send "{esc}"
#HotIf
; --6----------------------------------------------------------------
; 快捷键: ctrl + 1/2
; ctrl + 1, 切换桌面1
; ctrl + 2, 切换桌面2
^1::
{
SetKeyDelay 50 ; 设置按键延迟
Send "^#{Left}"
Sleep 100 ; 确保操作完成
}
^2::
{
SetKeyDelay 50
Send "^#{Right}"
Sleep 100
}
; --7----------------------------------------------------------------
; 快捷键:win / Alt / ctrl + 鼠标左键
; 轻松窗口拖动——KDE风格(基于Jonny的v1脚本改编)
SetWinDelay 10
CoordMode "Mouse"
#LButton:: ;win + 左键
!LButton:: ;alt + 左键
^LButton:: ;ctrl + 左键
{
MouseGetPos &KDE_X1, &KDE_Y1, &KDE_id
if WinGetMinMax(KDE_id)
return
; 获取窗口的初始位置。
WinGetPos &KDE_WinX1, &KDE_WinY1,,, KDE_id
Loop
{
if !GetKeyState("LButton", "P") ; 如果按钮已释放,则中断操作。
break
MouseGetPos &KDE_X2, &KDE_Y2 ; 获取当前鼠标位置。
KDE_X2 -= KDE_X1 ; 获取与初始鼠标位置的偏移量。
KDE_Y2 -= KDE_Y1
KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; 将此偏移量应用于窗口位置。
KDE_WinY2 := (KDE_WinY1 + KDE_Y2)
WinMove KDE_WinX2, KDE_WinY2,,, KDE_id ; 将窗口移动到新位置。
}
}