自用AutoHotkey v2.0 脚本

; ^ 代表 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 ; 将窗口移动到新位置。
    }
}

posted @ 2025-06-12 06:44  z1618  阅读(505)  评论(0)    收藏  举报