キーボードのキーにマウスボタンを割り当てる

先日購入した格安モバイル PC X205TA とても気に入っていますが タッチパッドのクリックボタンが使いにくいの少々残念です。そこで 今日はキーボードのキーにマウスボタンを割り当てるプログラムを作ってみました。

わざわざプログラムを作らなくても AutoHotkey などのツールを使えばこの程度のことは実現できると思いますが…。なるべく使用メモリ量を抑えたいということで機能を絞った小型軽量プログラムを作ってみました。使用メモリ量はわずか 400KB 程度です。

vi-keys

プログラムの名前は vi-keys としました。これはマウスボタンの割り当てだけでなく vi エディタに近いキーバインドでカーソルキー操作ができる機能も含めたためです。

ダウンロードした ZIP ファイルを展開して 中に入っている vi-keys.exe をスタートアップ フォルダーにコピーすればインストール完了です。ファイル名を指定して実行 で以下の内容を実行すればスタートアップ フォルダーがエクスプローラーで開きます。

"%APPDATA%¥Microsoft¥Windows¥Start Menu¥Programs¥Startup"

キーの割り当て

入力キー発動する機能
無変換マウス左クリック
変換マウス右クリック
Ctrl + Shift + Hマウスカーソル左移動
Ctrl + Shift + Jマウスカーソル下移動
Ctrl + Shift + Kマウスカーソル上移動
Ctrl + Shift + Lマウスカーソル右移動
Ctrl + H左カーソル
Ctrl + J下カーソル
Ctrl + K上カーソル
Ctrl + L右カーソル
Ctrl + D削除
Ctrl + QEsc
Ctrl + Shift + Spaceバックスペース
Shift + 無変換 Windows キー
Shift + 変換タスクビュー表示

基本的にホームポジションに指を置いたまま コーディングなどのテキスト作成作業ができるようにキーを割り当てています。特に Ctrl を押しながら H J K L を押すことでカーソルが移動できるのは便利ですよ。

Change Key を使うとさらに便利に

キーボードの Ctrl は少し押しにくいところにありますよね。そんなときは Windows のレジストリーを変更して Caps lockCtrl を割り当ててしまうのが良いです。

Satoshi さんの公開している Change Key を使うと簡単にキー割り当てを変更することができます。Change Key Windows のレジストリーを変更することでキー割り当てを変更するため常駐させる必要さえありません。

Change Key があれば vi-keys なんていらないのではないかって?

Change Key Windows のレジストリ設定 ではキーのスキャンコードを変更することはできますが マウスボタンのクリック機能を割り当てたり 複数のキーストロークに機能を割り当てることはできないのです。私もはじめは Change Key Windows のレジストリ設定 だけでなんとかできないものかと考えたのですが 実現できず 常駐アプリとして vi-keys を作成した次第です。

vi-keys のキーの割り当てを変更することはできますか?

設定でキーの割り当てを変更することはできません。キーの割り当てを変更したい場合は同梱されているソースコードをいじってください。小さなプログラムなのでソースコードに手を加えるのも難しくないと思います。

プログラムは C 言語 Win32 API で作成しています。Windows キーフックの勉強用にでも役立てていただければ嬉しいです。

この記事を共有しませんか?