Closed5
Windowsで[Caps Lock]キーと[Ctrl]キーを入れ替える
Riot製ゲーム(ValorantとかLoLとか)をインストールしていると、Riot VanguardのせいでCtrl2Capsが使用できないのでPower Toysで設定する。
Winget経由でインストールする
winget install PowerToys
早速キー変更と思ったが、うまくできない。
たとえば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での変更はできなかった。残念。
確実な方法としてはレジストリの書き換えかな。
これならスキャンコードから書き換えができるぽい。
このスクラップは5ヶ月前にクローズされました