3つのキーを同時入力するとき、例えば Ctrl + Shift + N は ^+n
ですが、CapsLock を Ctrl キーとしてF13に割り当てて使うとき F13 & +n
と書くとコンパイルエラーになるので、これを回避する方法について説明します。
3キー同時押しを取得するには GetKeyState 関数を使います。 GetKeyState は任意のキーボードの状態を取得する関数で、第1引数でキーの名前、第2引数でキーのモード(省略時は論理キーの状態、"P"は物理キーの状態、"T"はOn/Offが切り替わったかを取得)を選択できます。
F13 & n::
if GetKeyState("Shift") {
Send ^+n
return
}
Send ^n
return
上の例では、CapsLock(F13) + Shift + N を押したときは Ctrl + Shift + N が入力され、 CapsLock(F13) + N を押したときは Ctrl + N が入力されます。