Closed5

Windowsで[Caps Lock]キーと[Ctrl]キーを入れ替える

neginekonegineko

Riot製ゲーム(ValorantとかLoLとか)をインストールしていると、Riot VanguardのせいでCtrl2Capsが使用できないのでPower Toysで設定する。

neginekonegineko

https://ascii.jp/elem/000/004/034/4034117/

たとえばCaps Lockキーは、Windowsスキャンコードのレベルでは常に一緒だが、レイアウトDLLを通ると、JISキーボードの場合は「英数」キーになる。Caps Lockの機能は「Shift+Caps Lock」でする。「英数」キーは、VK_OEM_ATTN(0xF0、VK_240とも)コードを出力する。この仮想キーコードは、キーボードが日本語のときにだけ出力される。

ちょっとややこしいことに、このキーは押したことはイベント通知されるのに、離したことは通知されない。同じキーをShiftキーと同時に押すと、VK_CAPITALコード(0x14)が出力され、こちらは離したときにイベントが発生する。おそらく、日本語用のIMEに「英数」キーが押されたことを通知して、半角英数入力に切り替えていのだと思われる。

どうやら、IMEの都合でCAPS LOCKキーが特殊な扱いになっているよう。
押下イベントは送信されるようだが、離すイベントは送信されないよう。
MacのCAPS LOCKキーもそんな仕様だったなぁ。

てことで、PowerToysでの変更はできなかった。残念。

neginekonegineko

確実な方法としてはレジストリの書き換えかな。

これならスキャンコードから書き換えができるぽい。

このスクラップは3ヶ月前にクローズされました