增强 Typeless 热键的传递,避免无法召唤 Typeless
This commit is contained in:
25
CapSpace.ahk
25
CapSpace.ahk
@@ -1,16 +1,17 @@
|
|||||||
#Requires AutoHotkey v2.0
|
#Requires AutoHotkey v2.0
|
||||||
#SingleInstance Force
|
#SingleInstance Force
|
||||||
|
InstallKeybdHook ; 强制安装键盘钩子,提高对物理按键状态感知的准确性
|
||||||
|
|
||||||
; 解决 Win 键残留的核心设置:防止 AHK 自动发送 Ctrl 掩码
|
; 关键优化:将掩码键设为 vkE8。
|
||||||
|
; 这样 AHK 在屏蔽 Win/Alt 的菜单功能时,不会发送干扰 Typeless 的 Ctrl 信号。
|
||||||
A_MenuMaskKey := "vkE8"
|
A_MenuMaskKey := "vkE8"
|
||||||
|
|
||||||
; 确保 RAlt 穿透
|
; 1. 优化 RAlt 穿透逻辑
|
||||||
~RAlt::return
|
; 使用 ~ 确保信号能传给 Typeless,同时用 $ 防止热键自我触发
|
||||||
|
~$RAlt::return
|
||||||
|
|
||||||
; -------------------------------------------------------------------------
|
; -------------------------------------------------------------------------
|
||||||
; 逻辑说明:
|
; 2. 虚拟桌面切换逻辑 (使用之前优化的防残留方案)
|
||||||
; 使用 SendInput 提高可靠性。
|
|
||||||
; 执行完后强制发送 {LWin up} 以解除“卡死”状态。
|
|
||||||
; -------------------------------------------------------------------------
|
; -------------------------------------------------------------------------
|
||||||
|
|
||||||
*^Left:: {
|
*^Left:: {
|
||||||
@@ -23,23 +24,21 @@ A_MenuMaskKey := "vkE8"
|
|||||||
SafeRelease()
|
SafeRelease()
|
||||||
}
|
}
|
||||||
|
|
||||||
; 跳转到第一个桌面 (通常 10 次足够)
|
|
||||||
*^Up:: {
|
*^Up:: {
|
||||||
SendInput("#^{Left 10}")
|
SendInput("#^{Left 10}")
|
||||||
SafeRelease()
|
SafeRelease()
|
||||||
}
|
}
|
||||||
|
|
||||||
; 跳转到最后一个桌面
|
|
||||||
*^Down:: {
|
*^Down:: {
|
||||||
SendInput("#^{Right 10}")
|
SendInput("#^{Right 10}")
|
||||||
SafeRelease()
|
SafeRelease()
|
||||||
}
|
}
|
||||||
|
|
||||||
; 辅助函数:强制释放 Win 键,确保系统状态归零
|
; 辅助函数:彻底清除 Win 键残留,并给系统一点微小的缓冲时间
|
||||||
SafeRelease() {
|
SafeRelease() {
|
||||||
; 等待物理 Ctrl 键松开(可选,若想极致连发可注释掉下行)
|
; 强制释放 Win 键
|
||||||
; KeyWait "Control"
|
|
||||||
|
|
||||||
; 强制发送 Win 弹起指令,消除“残留”
|
|
||||||
SendInput("{LWin up}{RWin up}")
|
SendInput("{LWin up}{RWin up}")
|
||||||
|
|
||||||
|
; 如果切换后 RAlt 依然失灵,取消下面这行的注释(加 50ms 缓冲)
|
||||||
|
; Sleep 50
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user