【教程】AutoHotKey 输入法切换

注释已经很详细了,不再解释。

GroupAdd, EN, ahk_exe Code.exe
GroupAdd, EN, ahk_exe git-bash.exe
GroupAdd, EN, ahk_exe git-cmd.exe

WinWaitActive, Ahk_group EN
    Esc::
        SendInput, {Esc}
        ; 切换为英文 0x4090409=67699721
        PostMessage, 0x50, 0, 0x4090409, , A
        ; 切换为中文 0x8040804=134481924
        ; PostMessage, 0x50, 0, 0x8040804, , A
Return


; ———————————————— CapsLock 
CapsLock::
; 大于 0 说明 SetTimer 已经启动了,按下次数递增
if pressesCount > 0
{
    pressesCount += 1
    Return
}

; 否则,这是新一系列按键的首次按下。将计数设重置为 1 ,并启动定时器:
pressesCount = 1
;400 毫秒内等待更多的按键。
SetTimer, WaitKey, 400
Return

WaitKey:
SetTimer, WaitKey, off
; 该键已按过一次。
if pressesCount = 1
{
    Gosub singlePresses
; 该键已按过两次。
} else if pressesCount = 2
{
	Gosub doublePresses
} else if pressesCount > 2
{
    Gosub treblePresses
}

; 不论上面哪个动作被触发,将计数复位以备下一系列的按键:
pressesCount = 0
Return

singlePresses:
; 切换到下一个输入法
DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("ActivateKeyboardLayout", UInt, 1, UInt, 256))
Return

doublePresses:
send ^o
Return

treblePresses:
MsgBox, 检测到三次或更多次点击。
Return
; ———————————————— CapsLock 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值