根据按键是否被单独按下来重新映射按键

根据按键是否被单独按下来重新映射按键

我知道如何使用 Autohotkey 重新映射按键和组合键。如果我绑定大写锁定Ctrl, Capslock+ 的Anykey作用类似于Ctrl+ Anykey

我怎样才能CapsLock单独绑定到另一个热键(例如Ctrl+ ),但将+绑定到+ ?1CapslockAnykeyCtrlAnykey

答案1

好的,我有一个不完美的解决方法:

Capslock::Control  ;--Holding Caps = holding Ctrl

Capslock Up:: ;--If you press Caps fast, it types "No"
SendInput, {Control Up}  ;--For stability
If A_TimeSincePriorHotkey < 100  ;--Vary the time as it suits you
{
Sendinput, No  ;--Replace with what you want Caps to do on its own
}
Else
return
return

如果 Caps 按下的时间超过 100 毫秒,然后松开,则不会发生任何事情。如果 Caps 按下的时间少于 100 毫秒,然后松开,则它会输入“No”。如果在按住 Caps 的同时按下任意键,则它会执行 control+Key。如果 Caps 按下的时间少于 100 毫秒,并且在松开 Caps 之前按下任意键,则它会执行 control+Key 并输入“No”。您可以改变时间。这是我能做的最好的事情,也许还有更好的方法。

答案2

我用 C++ 编写了一个程序来实现这个功能。它重新映射了 Apps 键而不是 Capslocks,但修改起来并不困难。源代码(和更多信息)位于 github 上https://github.com/russelldavis/KeyFix4000

相关内容