Windows で JIS 配列のキーボードで ASCII 配列に変更したいんだけど.

デバイスドライバの変更

"日本語PS/2キーボード(106/109キー)" を "101/102 英語キーボード" に変更する

レジストリの変更

regedit にてキーボードマップを変更する.

  • [HKEY_LOCAL_MACHINE]
    • [SYSTEM]
      • [CurrentControlSet]
        • [Control]
          • [Keyboard Layout]

[Keyboard Layout]の上で、メニューの[編集] - [新規作成] - バイナリ(B)を選択して、

Scancode Map というキーを追加する.

  • CapsLockを左ctrlにする.
  • 右ctrlをCapsLockにする..
    左ctrl	00 1D
    右ctrl	E0 1D
    CapsLock	00 3A

intel CPUはリトルエンディアンなので、ひっくり返して書き込み.

  00 00 00 00 00 00 00 00   ; header version[4byte]  flags[4byte]
  03 00 00 00               ; エントリ数(terminateを含んだ数)
  1D 00 3A 00 3A 00 1D E0   ; (1d 00 -> 3a 00) (3a 00 -> 1d e0)
  00 00 00 00               ; terminate (終了)


キーコードは、以下のとおり.

    ESC         00 01
    TAB         00 0F
    CapsLock    00 3A
    左Shift     00 2A
    右Shift     00 36
    左Alt       00 38
    右Alt       E0 38
    左ctrl      00 1D
    右ctrl      E0 1D
    PrintScreen E0 37
    上矢印      E0 48
    下矢印      E0 50
    右矢印      E0 4D
    左矢印      E0 4B
    Insert      E0 52
    Delete      E0 53
    Home        E0 47
    End         E0 4F
    PageUp      E0 49
    PageDown    E0 51
    左Win key   E0 5B
    右Win key   E0 5C
    application E0 5D
    PAUSE       00 45
    ScrollLock  00 46

追記:2007-07-17
いまは、RemapKeyにて、変更してます.
その方が楽なんですもの.regeditなんていじってられませんわ.