BitTouchをAutoHotKeyと組み合わせて使用する

2011/04/07

Assembly Desk

1. 概要

BitTouchのConfiguration Toolでは、一つのボタンしか割り当てる事が出来ません。この為、例えば「ALT+F」の後、「S」を押す、と言った様なマクロ的な操作を1操作で行う様なショートカットキーボードは作る事が出来ません。

AutoHotKeyと言う常駐ソフトを用いると、この様な一連の操作を行う事が出来るようになります。

常駐ソフトを用いない、一連の処理を行う場合には、BitTouchマクロを使用する方法、を参照してください。

ここで紹介する機能を用いれば、ショートカットが設定されていない、メニューの奥の方にある機能に対してもボタン一つのショートカットを割り振る事が出来るようになります。

また、AutoHotKeyでは、アプリケーションを立ち上げたりWindowを操作したりすることが出来ます。

その機能を用いて、以下の様な機能を持つ「Firefox」キーを作ってみます。

AutoHotKeyは、ホットキーやマウスジェスチャー等を扱う超高機能なフリーソフトです。

あまりにも高機能なソフトな為、ここではそのソフトのごく一部の機能しか紹介しませんが、それでもとても高機能なショートカットキーボードを作る事が出来ると思います。

2. インストール

AutoHotKeyのオフィシャルサイトからダウンロードします。

http://www.autohotkey.com/

ダウンロードのページにはいくつかのファイルがありますが、「Installer for AutoHotkey Basic」を選択します。

ダウンロードしたファイルを実行してインストールします。

3. 設定ファイル(.ahkファイル)の書き方

3.1 .ahkファイルとは

.ahkファイルはマクロの動作を記述する為のファイルです。

テキストファイルなので、メモ帳などのテキストエディタで作成します。

この.ahkファイルをAutoHotKeyに読み込ませる事により(.ahkファイルをダブルクリックすればOK)、AutoHotKeyがこの.ahkファイルの設定に従った動作をする様になります。

3.2 .ahkファイルの書き方

.ahkの書き方を例を追いながら見ていきます。


a::b


これだけでも立派な.ahkファイルになります。

メモ帳等で「a::b」と打ち込み、適当な名前で拡張子を.ahkとして保存し、AutoHotKeyに読み込ませると・・・

「a」キーを押すと「b」と表示されます。


a::b

b::c


この様に書くと、「a」キーを押すと「b」が、「b」キーを押すと「c」が表示されます。

.ahkファイルは「::」の前に書いたキーを、後のキーで置き換えてくれます。

それでは、次にマクロを書いてみます。


;これはダメな例

a::bc


これで、「a」キーを押すと「bc」と押したことに・・・

ならないのです。

(ちなみに、行の最初が「;」だとその行はコメント行とみなされる)

::の後に二つ以上のキー(動作)を設定したい場合には次のように書きます。


a::

 Send,b

 Send,c

return


なんとなく分かると思いますが、これで「a」を押したら「b」続いて「c」と入力されます。

コマンドが二行以上に渡る場合には最後にreturnを付けます。

いくつかのマクロを登録したい場合には


a::

 Send,b

 Send,c

return

b::

 Send,e

 Send,f

return


と、この様に記述します。

「Shift+a」を「Ctrl+a」に置き換える場合は


+a::

 Send,^c

return


とします。

+や^は修飾子で、以下の様な意味を持ちます。

+

Shift

^

Ctrl

!

Alt

#

Windows

4 実際の例

4.1 Firefox向けショートカットの作成

次に、例としてFirefoxで「印刷プレビュー」をするショートカットを作ってみます。

印刷プレビューは「ALT+F」を押してメニューを開いてから「v」となっており、1ボタンで開く事が出来ません。

これを「Windows+1」で開ける様にします。


#1::

 Send,!f

 Send,v

return


次に、他のアプリでこのショートカットが悪さをしないように、このショートカットを「firefox」専用にしてみます。

(つまり、firefoxがアクティブでない時には何もせず、firefoxがアクティブな時には「印刷プレビュー」が出来る様にします)


#IfWinActive ahk_class MozillaUIWindowClass

 #1::

  Send,!f

  Send,v

 return

#IfWinActive


これで、firefoxがアクティブな時のみ、今のショートカットが機能します。

「ahk_class Mozilla UIWindowClass」と言う所が「firefox」を表しています。

この名前は、AutoHotKeyのタスクアイコンを右クリックして出る「Window Spy」を使って調べる事が出来ます。

二つ目の「#IfWinActive」はIf文の終わりを表しています。

4.2 Firefoxボタンを作る

AutoHotKeyはアプリケーションの起動や、Windowの制御も行う事が出来ます。

次のように.ahkファイルを作成します。


#1::

 Process,Exist,firefox.exe

 If ErrorLevel<>0

     WinActivate,ahk_pid %ErrorLevel%

 else

     Run,"C:\Program Files\Mozilla Firefox\firefox.exe"

return


これで、「Win+1」でfirefoxが立ち上がっていればfirefoxをアクティブに、firefoxが起動していなければ起動する、と言う機能を持ったfirefoxボタンを作成する事が出来ます。

Process,Exist,firefox.exe

で、ErrorLevelにfirefox.exeのプロセスIDが入ります。起動していない場合はここが0になります。