解决 Capslock / Shift 每个键的问题?

解决 Capslock / Shift 每个键的问题?

我希望在打开 Caps Lock 时每个键都相当于“Shift + ”。目前 Caps Lock 只能将字母变为大写,而不能将其他键变为大写。

因此,如果我按:'/",那么它应该是 ",而不是 '
1/!,那么它应该是 !,而不是 1

这可能超出了范围,但是 AHK 是否可以用于在其他程序中重新映射键?

换句话说,从实际硬件到操作系统再到接收按键事件的应用程序,AHK 在执行过程中处于什么位置?

有没有什么办法可以追踪这个流程?

答案1

#NoEnv
#UseHook

; Add the keys you want to be shifted while Capslock is on in this array this way:
Keys := ["1","2","3",",",".","-"] ; ...
for each, key in Keys
    Hotkey, %key%, Shift_Key, On 
return

Shift_Key:
If GetKeyState("Capslock","T")
    SendInput, +%A_ThisHotkey%
else
    SendInput, %A_ThisHotkey%
return

相关内容