2012年7月27日金曜日

日本語キーボードノートのキー配列変更.解決編


Windows 7 64-bit では AltIME が使えないのでどうするか.解決編

1) 101風で使いたい.
→ AXキーボードレイアウトにする.IMEをワンキーでオンオフするため.
HKLM\System\CurrentControlSet\services\i8042prt\Parameters
LayerDriver_JPN kbdax2.dll
OverrideKeyboardType dword:7
OverrideKeyboardSubtype dword:1
OverrideKeyboardIdentifier AX_105KEY

2) Caps と Ctrl の入れ替え
3) 未定義キーを設定(¥と\をPgUpとPgDnに)
4) カタカナひらがなキーを右ALTに割り当て (AXキーボードではIME-Toggle)
→ レジストリを操作
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map

(なければバイナリ値で作る)
構造は
00 00 00 00  Scancode Map Header
00 00 00 00  Scancode Map Ver Info
06 00 00 00  Numbers of Dwords to Follow (null term. を含むらしい)
1D 00 3A 00  003A (CapsLock) -> 001D (L-Ctrl)
3A 00 1D 00  001D (L-Ctrl) -> 003A (CapsLock)
49 00 7D 00  007D (¥) -> PgUp (0047)
51 00 73 00  0073 (\) -> PgDn (0051)
38 E0 70 00  0070 (カタカナ) -> 右ALT
00 00 00 00  Null Termination

2012年7月18日水曜日

日本語キーボードノートのキー配列変更

Windows 7 64-bit では AltIME が使えないのでどうするか.

# yamy は shift-lock が頻発しすぎで実用に耐えない.

1) 101風で使いたい.
→ 標準101キーボードドライバに入れ替える

2) Caps と Ctrl の入れ替え
3) 未定義キーを設定(¥と\をPgUpとPgDnに)
→ レジストリを操作
HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map
構造は
00 00 00 00  Scancode Map Header
00 00 00 00  Scancode Map Ver Info
05 00 00 00  Numbers of Dwords to Follow (null term. を含むらしい)
1D 00 3A 00  003A (CapsLock) -> 001D (L-Ctrl)
3A 00 1D 00  001D (L-Ctrl) -> 003A (CapsLock)
49 00 7D 00  007D (¥) -> PgUp (0047)
51 00 73 00  0073 (\) -> PgDn (0051)
00 00 00 00  Null Termination

カタカナひらがなキー (0070) でIMEのトグルはまだ方法がわからず.
101キーボードでは Alt-~ (Backquote) のキーシーケンスなので,これをワンキーでは無理か.
ATOK側の設定しようとしても,このキーを認識しない.レジストリで,これを使っていなさそうなキーに割り当て,さらにそれをATOKで設定するか?