Scan Code Mapをレジストリに入力することで、余計なソフトウェアを使うことなくキーの入れ替えができますが、操作を間違えるとトラブルも生じるため、細心の注意が必要です。入力する場所は「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout」(Keyboard Layoutsもあるので注意)で、そこに「バイナリ値」の「Scancode Map」を作成いたしますが、その値の構成は以下の通りです。
- 4バイト:バージョン情報:すべて0
- 4バイト:ヘッダー情報:すべて0
- 4バイト:エントリー数+1:個数を入力
- 4xnバイト:スキャンコードマップ:割り当てコード+実際に押されるコード
- 4バイト:終端
ただし、x86はリトルエンディアンであることに注意します。
レジストリを入力するには、レジストリエディタを起動しますが、ファイル名を指定して実行にて、「regedit.exe」を入力するか、もしくはスタートメニューからアプリの検索にて「レジストリ」と入力することで、「レジストリ エディター」を出して起動します。
最終的に以下の図のような状態にすればいいのですが、左のカラムのKeyboard Layoutを選択して右クリックし、「新規」→「バイナリ値」を選択して、以下の数値の羅列を入力いたします。

00 00 00 00 # バージョン情報
00 00 00 00 # ヘッダー情報
05 00 00 00 # エントリー数+1
3a 00 1d 00 # CapsLock (00 3A) <- 左CTRL (00 1D)
1d 00 3a 00 # 左CTRL (00 1D) <- CapsLock (00 3A)
01 00 29 00 # Escape (00 01) <- 半角全角 (00 29)
29 00 01 00 # 半角全角 (00 29) <- Escape (00 01)
00 00 00 00 # 終端
レジストリ内容の保存
左のカラムのKeyboard Layoutを選択して、「エクスポート」メニューを選択することで、その内容をファイルに書き出すこともできます。拡張子regで保存されますが、そのファイルを別のコンピュータでダブルクリックすることで、同じ内容を入力することも可能です。
参考にさせていただいたサイト
- https://qiita.com/summer/items/da39fa75fa9251502db4
- https://qiita.com/SSato9130/items/5ea3728fd651f02daf83
- https://www.ipentec.com/document/windows/windows-key-code-scan-value-and-key-code-map-format
- https://nobu-macsuzuki.hatenablog.com/entry/2021/10/18/073002
- https://map-scan-code.soncho-works.com/scancode
コメント