キーボードの配列を日本語←→英語に変更
日本語のキーボードを使用しているが英語配列キーボード、英語のキーボートを使用しているが日本語配列キーボードの入力になってしまうことが環境によって稀に発生します。
# USB 接続のキーボードだと想定しているキーボードの配列にならないことがたまにあるもので。
このようになった場合にキーボードの配列を変更するための方法をメモとして。
# Surface Pro に日本語の Windows Server
2012 をインストールしたところ英語の Type Cover を日本語配列で認識してしまったもので。
以下の技術文書に方法が記述されています。
コンピューターに USB キーボードを接続したときに Windows で正しいキーボード レイアウトが使用されないことがある
日本語配列にする場合は[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters] 以下のレジストリを以下のように設定します。
| 名前 | 種類 | データ |
| LayerDriver JPN | REG_SZ | kbd106.dll |
| OverrideKeyboardIdentifier | REG_SZ | PCAT_106KEY |
| OverrideKeyboardSubtype | DWORD | 2 |
| OverrideKeyboardType | DWORD | 7 |
英語配列にする場合は以下のように設定します。
| 名前 | 種類 | データ |
| LayerDriver JPN | REG_SZ | kbd101.dll |
| OverrideKeyboardIdentifier | REG_SZ | PCAT_101KEY |
| OverrideKeyboardSubtype | DWORD | 0 |
| OverrideKeyboardType | DWORD | 7 |
頻繁にキーボードの配列を変更する場合には、reg コマンドでバッチを用意すると便利かもしれないですね。
| REM 日本語配列
reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "LayerDriver JPN" /t REG_SZ /d kbd106.dll reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "OverrideKeyboardIdentifier" /t REG_SZ /d PCAT_106KEY reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "OverrideKeyboardSubtype" /t REG_DWORD /d 2 reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "OverrideKeyboardType" /t REG_DWORD /d 7 REM 英語配列 reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "LayerDriver JPN" /t REG_SZ /d kbd101.dll reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "OverrideKeyboardIdentifier" /t REG_SZ /d PCAT_101KEY reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "OverrideKeyboardSubtype" /t REG_DWORD /d 0 reg add HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /f /v "OverrideKeyboardType" /t REG_DWORD /d 7 |