Windows キーボードレイアウトの変更

ドライバの変更

コントロールパネルから101キーボードに変更しても変更がうまく反映されない場合があるようだ. その場合にはレジストリエディタ(regedit.exe)で以下のキーをUSキーボード用の設定に書き換える.

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/i8042prt/Parameters
書き換えるキー 日本語キーボード USキーボード
LayerDriver JPN kbd106.dll kbd101.dll
OverrideKeyBoardIdentifier PCAT_106KEY PCAT_101KEY

キーボード レイアウトを初期化

以下のレジストリ キーを削除すれば初期化される.

HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Keyboard Layout/Scancode Map

Keyboard Layoutの次に複数形のKeyboard Layoutsがあるので間違わないように気をつける.

ScancodeMap

キー スキャン コード
\ 2B
` 29
Control(左) 1D
Control(右) E0-1D
Caps 3A
Alt(左) 38
Alt(右) E0-38
ESC 01
BS 0E
DEL E0-53
Ins E0-52
Windows(左) E0-5B
Windows(右) E0-5C
Application E0-5D
◇(左) 7B
◇(右) 79
無効化する 00

Light Ext. modeは常にオンにしておかないといけないと思う. Light Ext.モードになっていないと“◇”キーがまったく機能しない (押してもスキャンコードを返してくれないのでマッピングのかえようがない). これをオフにしていると何か意味があるOSも存在してるのかな…例えばSolarisとか. あるいは単に邪魔なときにオフにするのかな.

CtrlやAltみたいに右・左にそれぞれ1個ずつついているキーについては, 実は右と左を違うキーとして認識することもできる. 実際,ごくまれにだけど,右Ctrlと左Ctrlを違うキーと認識するソフトが存在している (一番身近な例はMS-IME).

書き換え例

#説明
0000 0000ヘッダー(バージョン番号).すべてゼロにしておく.
0000 0000ヘッダー(フラグ).すべてゼロにしておく.
0800 0000エントリー数.ここでは以下の8エントリー(終端のNULLもカウントする).
13800 5CE0Windows左(E05C)→Alt左(0038
21D00 3800Alt左(0038)→Control左(001D
31DE0 38E0Alt右(E038)→Control右(E01D
43A00 1D00Control左(001D)→Caps(003A
50E00 2B00\(002B)→BS(000E
62B00 0E00BS(000E)→\(002B
70000 52E0Ins(E052)→無効(0000
80000 0000NULLターミネーター.

英語キーボードについてのメモ

英語キーボードでIMEを切り替えるには[Alt]+[~](tilda)を押せばよい. ちなみに日本語キーボードの設定になっていても このキー組み合わせでIMEを切り替えることができるので,普段から[半角/全角]ではなく, [Alt]+[~]を使っておくのがいいのかもしれない.

また,Happy Hacking Keyboardの英語版を日本語キーボード配列で使っている場合, 単に[~]キーを押すだけでIMEのON/OFFができてしまったりする (このキーが[全角/半角]キーと誤解されているため).


はたいたかし
http://exlight.net/
2006-05-05
Home > 開発ツール > Windows キーボードレイアウトの変更