根據是否單獨按下某個鍵來重新映射該鍵

根據是否單獨按下某個鍵來重新映射該鍵

我知道如何使用 Autohotkey 重新映射按鍵和組合鍵。如果我綁定大寫鎖定控制鍵, Capslock+將像+Anykey一樣工作。CtrlAnykey

如何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 毫秒,然後放開,則不會發生任何情況。如果按下它的時間少於 100 毫秒,然後放開,它會輸入「No」。如果按住任意鍵,將執行control+Key。如果您按住 Caps 的時間少於 100 毫秒,並且在釋放 Caps 之前設法按任意鍵,則會執行 control+Key 並輸入「No」。您可以改變時間。這是我能做的最好的方法,也許還有更好的方法。

答案2

我用 C++ 寫了一個程式來完成這件事。它重新映射 Apps 鍵而不是 Capslocks,但修改起來很簡單。原始碼(和更多資訊)位於 github 上https://github.com/russelldavis/KeyFix4000

相關內容