キーカスタマイズ(リマップ) 
2007.04.22.Sun / 23:27 

配列全体の変更と、個別キーの変更とを扱います。これらのカスタマイズ結果はレジストリファイルとして保存可能で、以後はクリックひとつでカスタマイズ可能です。また窓使いの憂鬱がWindows Vistaでは動作しないことを受け、代替策を模索する向きも多いことでしょう。レジストリ書き換え型のリマップはVistaでも可能です(ただし複雑なキーバインドなどは望めません)。




■ 配列全体の変更


 いまお使いのキーボードは何配列のものでしょうか? そしてそれに適用しているキーボードドライバーは…? 大抵の場合、(ハード+ソフト)のキー配列というのは、(JIS+JIS)や(ASCII+ASCII)といった具合に一致しているものです。


 しかし、OSをインストールした後に誤表示・誤認識されるのはよくありがちなことですし、USBキーボードを飛び入り参加させた結果、藪蛇(やぶへび)に配列を変えられてしまうこともあります。LogitechのSetPointに至っては、インストール時に否応無く、キーボードドライバーを上書きしてしまうバージョンもあります(*1)


 さていずれにせよ、これらの不具合を解決するには、デバイスマネージャ経由で、キーボードドライバーを正しく指定し直せば良い訳です。ただしひとつ条件があり、この作業が行えるのは、PS/2キーボードを接続している時に限られます。ご本家Microsoftに画像入りの丁寧な説明があります(XP用/Vista用)ので、本記事では割愛します。


 ただSetPointのインストールや、それ以外にも何かの不具合の度に、煩雑な配列変更作業に(いそ)しむというのも不便です。またUSBキーボードしか無い環境では、デバイスマネージャ経由でのドライバー変更は行えません。結局この変更作業とは、使用するキーボードドライバーのDLLファイル(*2)名を、レジストリの該当部分に指定することそのものです。それ故、直接その部分を操作することで容易に変更できますし、またREGファイルとして保存しておくことで、今後はワンクリック+再起動(XPなら再ログオン)で配列変更が可能です。下記の破線内のテキストを、メモ帳などのテキストエディタにコピー&ペーストし、任意の名前で拡張子を.REGとして保存すると良いでしょう。


  1. キーボード配列を日本語JIS配列に変更する
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
    "LayerDriver JPN"="kbd106.dll"
    "OverrideKeyboardIdentifier"="PCAT_106KEY"
    "OverrideKeyboardSubtype"=dword:00000002
    "OverrideKeyboardType"=dword:00000007

  2. キーボード配列を英語ASCII配列に変更する
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters]
    "LayerDriver JPN"="kbd101.dll"

 ご覧のように、JIS配列に変更するときにはOverride関連の項目も必要ですが、ASCII配列に変更するときには、Layer〜の項目だけで構いません。汎用性を考えると、1.のレジストリを保存し、Layer〜の項目を106/101と書き換えて使い分けると良いでしょう。なお、各項目の詳しい解説はKB102989にあります。


 ところで"kbd101.dll"を適用する場合、日本語入力切り替えは、ASCII配列のAlt+`(JIS配列のAlt+半角/全角)で行うことになります。この2アクションが億劫(おっくう)であれば、日本語入力切り替えが右Altの1アクションで可能である以外は"kbd101.dll"と同じレイアウトの、"kbdax2.dll"というものもあります。


 ただ別記事で触れているように、メインキーボード部最下段右半分のキー位置というのはとかく流動的で、私見ながら、右Altが押しやすいとは到底思えません。しかし一つのキーボードを使い続けるのなら、それも些細な問題なのかもしれませんね。皆さんは如何思われますか?



■ 個別キーの変更


 リマップの目的は人それぞれですが、圧倒的に多いのはCtrlCapsLockEsc半角/全角の入れ替えで、UNIX系OSの操作が長い人ほど、この変更を好まれるようです。他にJIS配列のスペースキー両脇に控える無変換変換カタカナ ひらがななども、一等地の割には遊休しがちで、代わりに需要の高いEnterShiftCtrlWin半角/全角などに変更されているケースを散見します。


 さて、リマップの方法は、次の2つに大別されるでしょう。


  1. システム常駐型 … 「窓使いの憂鬱」や「猫まねき」など
  2. 利点
    マクロ的に2ストローク割り当てやシーケンス入力が可能
    ・アプリケーションごとに別の割り当てが可能
    ・その他柔軟なカスタマイズが可能
    ・物理的に無いキーもソフト的に設定可能

    欠点
    ・システムに常駐するのでメモリを消費する
    ・アプリケーションなので動作環境(OS)の制限がある
     (e.g. 窓使いの憂鬱がWindows Vistaでは動作しない etc.)

  3. レジストリ書き換え型 … 「RemapKey」(*3)や「ChangeKey」などを補助利用
  4. 利点
    ・Vistaを含むNT系OSでは使い回し可能(共通のレジストリ)
    ・リマップを意識すること無く、透過的に利用可能
    ・レジストリを保存すれば、次回からはソフト不要
    ・物理的に無いキーもソフト的に設定可能
    ・システムへの負担は実質上無し
    欠点
    ・設定によってはログオン不能になり危険
    ・複数キーのバインドに対する再定義は不可
     (常駐型ソフトが重宝される主な理由はこれでしょう)

 本稿では2.のレジストリ書き換え型を扱います。レジストリ改変時のお約束として、不用意な値操作は重大なシステム障害を招く可能性がありますので、各自のスキルと責任に於いてご利用ください。また、今回は特にキー配列変更というカスタマイズの性質上、共用や社有のPCにおける無断改変は絶対に避けるべきです。


 さて、早速どちらかのソフトを起動してみましょう。操作手順はRemapKeyなら、下段のリマップされるキーに、上段のリマップしたいキーをドラッグアンドドロップし、ファイル ⇒ 保存して終了 ⇒ 再起動 です。ChangeKeyなら、リマップされるキーをクリックすると、もう一つキーボードウィンドウが表示されますので、リマップしたいキーをクリック ⇒ 登録 ⇒ 現在の設定内容で登録します ⇒ 再起動 です。


RemapKey 起動図  ChangeKey 起動図


 なお、両者ともレジストリ書き換えのフロントエンド(Wikipedia 初項参照)として動作しているに過ぎませんので、設定を登録した後は、該当部分をREGファイルとして書き出しておけば、今後はこれらのツールを使わずとも直接カスタマイズ可能で、これは先の配列変更の時と同じです。また、レジストリ変更を反映するためには再起動が必要です。


  リマップ例
無変換左Winに、変換Backspaceに、カタカナ ひらがなDeleteにカスタマイズ
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
  "Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,53,e0,70,00,5b,e0,7b,00,0e,00,79,00,00,00,00,00



■ カスタマイズ結果の統合保存および再導入


 前述2か所のレジストリ項目は、1つのREGファイルに統合して、%SystemDrive%(Windowsをインストールしたドライブ)以外の任意の場所に、任意の名前でバックアップしておくと良いでしょう。REGファイルとして認識させるためには、テキスト1行目に"Windows Registry Editor Version 5.00"や"REGEDIT4"(小文字不可)の記述をお忘れなく。


 このファイルが最も活躍するのは、クリーンインストール直後でしょう。レジストリ内容をシステムに統合し、カスタマイズを反映させるには、単純にファイルをクリックして、統合確認のダイアログに答えるもよし。BATファイルに "REGEDIT.EXE /S KeyLayout.REG" と書いて、サイレント実行するもよし。貴方次第です(KeyLayout.REGは任意の名前でフルパスで記述)。



■ その他のリマップ方法


 究極の方法としては、土台となるDLLファイルを、直接自分の好みに書き換える手段もあります。ですが手作業で行う方法は、バイナリーエディターやスキャンコード(*4)の知識が必要な上、WFPをオフにするかセーフモードにしてファイルを置き換える必要があり、幾分イリーガルな方法で、万人にはお薦め出来ません。


 正統的には、Microsoft純正のキーレイアウトDLL作成アプリケーション Microsoft Keyboard Layout Creator を利用します。Windows Vistaにも対応した、最新のVer.1.4が適当でしょう。作成したDLLの適用方法などはマニュアルに詳しく、英語とはいえ平易な文章ですので、そちらを参照すると良いでしょう。


Microsoft Keyboard Layout Creator 起動図




(*1)
SetPoint … Logitech(Logicool)の入力機器ドライバー兼ユーティリティー。Ver.3.10頃まではインストール時に、キーボードドライバー/マウスドライバー/その両方 を選択出来たのですが、それ以降のVer.ではこの選択肢が無く、否応なくキーボードドライバーが更新されてしまいます。SetPointが日本語版で日本語を選択した場合はJIS配列に、多言語(英語US)版で英語などを選択した場合はASCII配列に、再起動後それぞれ変更されてしまうようです。

(*2)
%SystemRoot%\system32\kbd*.dll(*は各レイアウトの名前)がキーボードドライバーです。日本語JIS 106/109なら"kbd106.dll"か"kbd106n.dll"、英語ASCII 101/104なら"kbd101.dll"です。ちなみに106と106nの違いは、日本語入力時のローマ字入力/かな入力の切り替え方法で、106ではCtrl+Shift+カタカナ ひらがな、106nではCtrl+CapsLock 英数です。更にMS-IMEではAlt+カタカナ ひらがなとなっているため、両者の違いを意識することは無いのが現状でしょう(ATOK etc. 要検証)。

(*3)
MicrosoftのResource Kitに収録されたため、作者のサイトからは入手できなくなりました。現在 Windows Server 2003 Resource Kit Tools(11.8MB) がフリーでダウンロード可能で、その中に同梱されています。

(*4)
MicrosoftのWHDC内のサイトからスキャンコード表 Keyboard Scan Code Specification(2.4MB doc形式) がダウンロード可能です。またChangeKeyでは、押下したキーのスキャンコードをリアルタイムに表示可能で、便利です。

テーマ:パソコン豆知識 - ジャンル:コンピュータ
COMMENT TO THIS ENTRY
----

176Lu さま
本当にありがとうございました、助かりました。当方i8042prtなんて聞いたこともなかったんです。

でその後、解決しました。
「i8042prt サービス」で検索した下記の内容が当方にも当てはまりました。
http://do-gugan.com/~furuta/archives/2006/01/windowsxpps2.html

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt]
"Type"=dword:00000001
ここの値が4になっていたのです。

でも原因が分からないんですけど。

あと、うちのLogitechコードレスクリックプラスが最近おかしくなってまして時間の都合がつけば書いてみようと思ってます。その際はまたご教示頂ければ!

- from Everyday People -

--幸せの青い鳥は…--

こんにちは。ともあれ問題解決おめでとうございます。

> でも原因が分からないんですけど。

ホント、最初にドライバが変わったきっかけは何だったんでしょうね。ところでご自身のブログに最初に書かれているKB418323に、そのものズバリの答えがあったのに、結局私ってば問題を引っ掻き回しただけで直接お役に立てていないような…。それにしても幸せの青い鳥はやはり一番身近に在るものなのですね。

Logiマウス/トラックボールも気が付けば15個を数えるまでになりましたが、盲点と言うか、CordlessClick!Plusは未所有です。中堅機種ながら、巷では割と評判が良いようですね。どのようなトラブルか判りませんが、いつの日かお役に立てれば幸いです。

- from 176Lu -

  Secret Comment(非公開コメント)
スポンサーサイトキーカスタマイズ(リマップ)のトラックバックURL

この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Author: 176Lu


リンクはご自由に。但しオークションサイト等からはお断り致します。詳しくは「はじめにお読みください」の記事を。

ブログ内検索

メールフォーム

Name:
Mail:
Subject:
Comment:


CopyRight 2006-2008 Moonlight Café All rights reserved.