Windows キーバインドの変更

Date : 2006-12-17
Author : Defolos

CONTENTS

(1.) キーバインドの変更
- キーバインドとは
- キーバインドの変更方法
- Scancode Mapのフォーマット

キーバインドの変更

● キーバインドとは

 キーバインド(key bind)とは、キーアサイン(key assignment)とも呼ばれ、キーボードの個々のキーへの記号や機能の割り当てのことです。例えばファンクションキーは機能が固定されていないので、F1を押したらコピー機能を呼び出すなど、好きに機能を割り当てることができます。
 これと同じように、「A」キーを押した時に「B」が画面に表示されるようにキーの割り当てを変更することができます。このレポートでの目的は普段利用しない「無変換」キーや「ひらがな」キーを利用頻度の高いCtrlキーやAltキーに変更することです。

● キーバインドの変更方法

 キーバインドを変更する方法には、CmdSpaceなどのキーバインド変更ツールを利用する方法もありますが、ここではWindowsのレジストリを編集してキーバインドを変更します。
 手順は次の通りです。

  1. <スタート>メニューから<ファイル名を指定して実行>を選択
  2. 「名前」に「regedit」と入力後 <OK>ボタンをクリック
  3. レジストリエディタが起動したら次のようにキーをたどって開く
  4. メニューバーを<編集>→<新規>→<バイナリ値>と選択
  5. 新しく作られたエントリを「Scancode Map」に変更
  6. 「Scancode Map」をダブルクリックして開き、次のフォーマットに沿って編集
  7. 設定を有効にするためにWindowsを再起動

 以上の手順でキーバインドを変更します。次にScancode Mapのフォーマットを解説します。

● Scancode Mapのフォーマット

 Scancod Mapの情報はバイナリ型(2進数型)で管理されています。設定が完了したScancode Mapエントリをダブルクリックして開くと次のようになります(図1)。以後はこの図を中心に解説していきます。

http://ruffnex.oc.to/defolos/text1/figure/figure36.jpg

 まず<値の名前>がScancode Mapであることを確認します。ここには編集しているエントリの名前が表示されます。エントリは名前を持つデータのことで、データの入れ物のようなものです。必ず名前を持っていますが、各キーにひとつだけ名前のないエントリが存在します。これはregeditでは「(既定)」と表示されています。
 レジストリはOSの起動や各種のサービスの起動に関わる重要な設定が保存されています。間違えて異なるキーを編集してしまうとWindowsが起動しなくなることもありますので、編集前に確認を行います。
 次に<値のデータ>の部分を説明します。左の4文字づつ「0000」、「0008」、「0010」と列になって表示されている部分はアドレスです。何番目のデータを編集しているのかを見やすくするインジケータの役割を持っています。4文字の列の後部に少し隙間が開いて「00」、「01」や「79」などのように2文字づつ組が8個つらなって1行を構成している部分があります。ここが編集部分です。新規作成した直後はこの部分が空白になっていますので、カーソルをもっていって16進数の数字を入力することで編集します。その後部の「......y.」のような部分は編集されたデータをASCII文字で表示した部分です。ASCII文字として表示できないものは「.」に置き換えられています。

 編集部分の1行目「00 00 00 00 00 00 00 00」はヘッダーです。この部分には変則的な規則はないので、そのまま00を8個入力します。次の「02 00 00 00」は、この後に続くDWORD型(整数型)のデータの個数が入ります。キーバインドは整数の数字で管理されていますので、ここには交換元と変換先のペアの数の2倍の数が入ります。その次の「01 00 79 00」がキーバインドの指定部分です。これを次のように2つに分けます。

 前者の「01 00」の部分が変換元となるキーの値です。後者の「79 00」の部分は変換先となるキーの値です。例えば、Escキーを無変換キーに割り当てたい場合、変換元となるキーがEscで変換先となるキーは無変換キーです。キーバインドは先述のように整数の数値で管理されていますので、変換したいキーの値を16進数で設定すれば変換が可能です。代表的なキーの割り当てを次に挙げます。左側がキーの名前、右側がキーに割り当てられている数値です。16進数なので先頭に「0x」を付加して表現しています。

 Caps LockキーをCtrl(左)に変更したい場合、Cpas Lockキーは0x3A、Ctrl(左)は0x1Dに割り当てられていますので、「0x3A 00 1D 00」と設定します。図1の例ではキーバインドの変更部分は「0x01 00 79 00」となっていましたので、これはEscキーを変換キーに変更するということを意味しています。

 最後の行の「00 00 00 00 00 00 00 00」の部分はフッターです。ヘッダーと同じように変則的規則はないのでこのまま入力します。
 キーバインドの設定個数は自由に変えられますので、自分の使いやすいようにカスタマイズすると良いでしょう。キーバインドを元に戻したい時は作成したScancode Mapエントリを削除すれば元に戻ります。
 ここまでの設定を終えたら<OK>をクリックし、Windowsを再起動させます。これでキーバインドが変更されます。


■参考文献


go back to the TOP page of Glazheim Lykeion.