Windowsでキーマップを変更する
- Windows PC でキーマップを変更するためのメモ
- PC は Windows 10 Home
- 本ページではレジストリエディタを用いたレジストリ設定を記載しています
- 本ページの内容を参照される際にはすべて自己責任にて実施してください
要件 ( やりたかったこと )
- キーボード上のキーマップを変更 (
CapsLock
を 追加のCtrl
として使う みたいな設定を行う方法のメモ ) - 追加のソフトウェアは使用しない ( OSの機能のみで実現したい )
変更方法
レジストリの設定を作成して変更する
レジストリの変更方法
準備
レジストリの変更を行うには以下の2つの方法がある
※ 変更を反映させるためには再起動が必要
- regedit.exe ( レジストリエディタ ) でて入力する
- regファイルを作成して読み込ませる ( regedit.exe でインポートする )
どちらでやってもそんなに作業量は変わらなさそうだが、今回は regedit で直接入力したほうが楽そうなのでその方法をメモしておく
( reg ファイルは regedit から Export できるので、複数の PC に設定する場合には Export と Inport で対応するのが楽そう )
regedit での設定ファイルの作成
regedit.exe を開き、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
に Scancode Map
を作成
設定内容の作成
設定内容は以下の内容で構成されるらしい
Start offset (in bytes) | Size (in bytes) | Data |
---|---|---|
0 | 4 | Header: Version Information |
4 | 4 | Header: Flags |
8 | 4 | Header: Number of Mappings |
12 | 4 | Individual Mapping |
... | ... | ... |
Last 4 bytes | 4 | Null Terminator (0x00000000) |
※ Microsoft社ドキュメント Hardware Dev Center Keyboard and mouse class drivers より引用 |
説明や内容を見た感じ各値の意味は以下みたいな感じ
また、設定値はリトルエンディアンで記載する
- Version Information
- 4byte の all0
- Flags
- 4byte の all0
- Number of Mappings
- エントリ数 ( nullエントリを含む )
- 設定内容 ( キーマップの変更 ) のエントリ数 + 1 ( nullエントリ )
- Individual Mapping
- 設定内容
- Null Terminator
- 4byte の all0
サンプルなどは Hardware Dev Center Keyboard and mouse class drivers にあるので設定内容全体への詳細記法は省略する
Individual Mapping に関して
この項目は以下の手順で作成していけばいい
- キーボード上のキーを何と入力したいかを決める
- 今回は既出リンク内のサンプルにもある
CAPS LOCK --> Left CTRL key
で記載する
- 今回は既出リンク内のサンプルにもある
- これをキーコードに直す
-
CAPS LOCK
は0x3A
-
Left CTRL key
は0x1D
-
- 変更したい内容をキーコードで表すと
0x3A --> 0x1D
- 上記のキーコードでは
1byte + 1byte = 2byte
なので各種設定値の頭に all0 の 1byte を付与して Individual Mapping のバイト数 ( 4byte ) に合わせる-
0x003A --> 0x001D
(2byte + 2byte = 4byte
) - 今回は変更したいキーのコードが 1byte だったので頭に0埋めしたが、もともと2byteの場合は0埋め不要
-
- 上記より作られた値は
0x003A001D
- これをリトルエンディアンにする
- 設定値は
0x1D003A00
となる
- 設定値は
- この値が Individual Mapping ( レジストリエディタに入力するときは
0x
無しで1D003A00
と入力できた )
キーコードに関しては Microsoft Download Center
からdoc形式のドキュメントでダウンロードできる
( 検索したところダウンロードリンクしか見つからなかったが、本記事執筆時現在以下のキーワードで検索すると上位に出てきた )
Keyboard Scan Code Specification - Microsoft Download Center
参考
- Hardware Dev Center Keyboard and mouse class drivers
- Keyboard Scan Code Specification - Microsoft Download Center