我有一个简单的AutoHotKey脚本:
Capslock::Ctrl
#Capslock::Capslock
重点是,即使我只想让它作为Ctrl运行,也会激活大写锁定模式,但我无法停止。唯一的方法是暂停脚本,修复它,然后重新激活它。
如何让它按预期工作?
VK SC Type Up/Dn Elapsed Key Window
----------------------------------------------
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.06 CapsLock
14 03A h d 0.03 CapsLock
14 03A h d 0.03 CapsLock
11 01D i d 0.03 Control
11 01D i d 0.00 Control
14 03A h d 0.00 CapsLock
11 01D i d 0.00 Control
14 03A h d 0.03 CapsLock
11 01D i d 0.00 Control
14 03A h u 0.03 CapsLock
11 01D i u 0.00 Control
答案 0 :(得分:1)
您的代码存在一个明显的问题:Ctrl
是修饰键,而Capslock
则不是,这会产生意外结果,包括Roman所描述的内容。
请改为尝试:
Capslock::SendInput {Ctrl Down}
Capslock Up::SendInput {Ctrl Up}
#Capslock::Capslock
答案 1 :(得分:1)
回答:
为什么按
Shift + Caps
(Shift
优先)激活大写锁定模式?
由于+Capslock
在技术上是另一个热键,因此您可能希望通过添加其他条目+Capslock::
来分配其他任务,因此默认情况下不会被Capslock::
捕获。
要捕获所有组合而不为每个组合添加单独的条目,请尝试:
*Capslock::SendInput {Blind}{Ctrl Down}
*Capslock Up::SendInput {Blind}{Ctrl Up}
但是,此可能会干扰#Capslock::
条目,具体取决于上下文。
因此,指定所有可能的组合是安全的,虽然它看起来有点过于复杂甚至难看。
修改强>
关于您添加的密钥历史记录,
CapsLock
条目,中间只有2个Control
条目?我猜这个剧本不知何故错过了#39;按键事件,当脚本本身忙于执行其他操作时,或者由于其他任务占用CPU而导致OS没有给脚本足够的时间片时,就会发生这种情况。i
。并非总是如此,但有时。Process Priority,, A
可以提供帮助,使故障更少发生。答案 2 :(得分:0)
如the answer of johnlee所述,可能是因为
脚本本身太忙于做其他事情,或者由于其他任务占用CPU,操作系统没有给脚本足够的时间片
所以我无能为力。所以我的解决方案是
#Space::Capslock
使用Capslock::Ctrl
优于Capslock::SendInput {Blind}{Ctrl Down}
,因为当首先按下 Shift 时,它不会激活 Shift + Ctrl 。