我想把caps键变成这样:
按住的时候是Ctrl,单击的时候还是caps
请问应怎么写?谢谢。
新手求教,如何实现单击和长按绑定不同按键? Topic is solved
Moderators: tmplinshi, arcticir
-
- Posts: 89
- Joined: 10 Aug 2019, 01:49
Re: 新手求教,如何实现单击和长按绑定不同按键?
editing
Last edited by fwejifjjwk2 on 05 Apr 2021, 20:23, edited 1 time in total.
Re: 新手求教,如何实现单击和长按绑定不同按键?
谢谢你,但感觉反应不是很灵敏,打字快的时候会出错。如果可以实现“提起LCtrl时检测按的过程中是否有其它键按下过,如果没有的话则切换大小写”可能会更好。fwejifjjwk2 wrote: ↑19 Nov 2019, 23:18我的預設鍵盤配置 capslock 就已經是 ctrl 了,下面的代碼對我有效,剩下的你自己改吧。
Laszlo post in 2007
Code: Select all
SetNumLockState, on SetScrollLockState, AlwaysOff ; refrence https://autohotkey.com/board/topic/15574-morse-find-hotkey-press-and-hold-patterns/ ; ; 單擊 LControl 視為 caps 其它情況視為 ctrl ~LControl:: p := Morse() If (p = "0"){ ; 單擊切換 CapsLock 狀態 SetCapsLockState % !GetKeyState("CapsLock", "T") } Else If (p = "00"){ MsgBox Two short presses } Else If (p = "01"){ ; 長按視為 LControl Send, {LControl} } Else{ Send, {LControl} ; MsgBox Press pattern %p% } Return Morse(timeout = 250) { tout := timeout/1000 key := RegExReplace(A_ThisHotKey,"[\*\~\$\#\+\!\^]") Loop { t := A_TickCount KeyWait %key% Pattern .= A_TickCount-t > timeout KeyWait %key%,DT%tout% If (ErrorLevel) Return Pattern } }
-
- Posts: 89
- Joined: 10 Aug 2019, 01:49
Re: 新手求教,如何实现单击和长按绑定不同按键?
editing
Last edited by fwejifjjwk2 on 05 Apr 2021, 20:23, edited 2 times in total.
Re: 新手求教,如何实现单击和长按绑定不同按键?
谢谢你的建议fwejifjjwk2 wrote: ↑22 Nov 2019, 10:51@k88
1. 不要做沒辦法提高效率的事情。快捷鍵有針對視窗觸發、在視窗的特定位置觸發、多鍵盤模式就夠了,應該把精力放在其它地方。
2. 用 shift 輸入大寫就夠了,大小轉換,AutoHotkey 有函數,notepad++ 也可以做到。
3. 盡量用 launch bar 少用快捷鍵