AutoHotKeyについて 4


近頃何かと話題のAutoHotKeyについて、少しばかり紹介しておこうと思います。
今年は「十人十色」でも取り上げられる予定ですし、パワーユーザーの翻訳者さんも少なくありません。その存在はずいぶん昔から知っていましたが、それ程詳しいわけではなく、これからしっかり勉強してみようとしているところです。

ほとんどの翻訳者さんは「AutoHotKey(以下、AHK)って何?」という状態ではないでしょうか。そこで、基本的なことについて話しておこうと思います。

AHKのWikiページでは次のように説明されています。

AutoHotkeyはホットキーへの機能の割り当てなど常駐ソフトの作成に特化したスクリプトエンジン。

任意のキーの割り当て変更、マクロ、ウインドウ操作 …
オープンソースの簡易プログラム言語、Windows用フリーソフト。

つまり

キーボード(マウス)のカスタマイズ
ランチャー(ホットキー)
Windows上の操作

をプログラムするためのプログラム言語です。

キーボードやマウスのボタンを自分が操作しやすいように割り当てることができます。特定のキー入力がなされたときに、指定したプログラムが実行するようすることもできます。このようなことは、Wordや秀丸の設定やマクロでも可能ですが、AHKを使用するとどのアプリケーションでも同じ操作ができるようになります。また、特定のアプリケーションにのみ有効なプログラムも作成できます。

例:

修飾キー(CtrlやAltキー)を入れ替える
Win + Aを押すと選択した文字列が複数の辞書(ブラウザを含む)で検索される
無変換 + xを押すと行を選択(マウスのトリプルクリック)してコピーする。コピーした文字列に正規表現で置換を行う。

単純なキーの割り当てや、複数の処理を1回のキー入力で行うなど、操作しにくい処理や煩雑な処理をカスタマイズすることで、効率化を図ることができます。

プログラムはメモリー上に常駐しますが、処理は高速でサイズも小さく、通常の作業にはまったく影響しません。

翻訳作業の効率化には多大なメリットがあると思いますが、

個人の環境に依存する
難しくはないが、基本的なプログラミング知識を要する

などの問題もいくつかあります。

作成したプログラムは配布可能ですが、使用する環境によって、動作しない場合があります。
例えば、

使用するブラウザが異なる
辞書の画面位置が異なる

割り当てたキーが他のアプリケーションと重複する(AHKが優先)

このような問題を回避するには、自分の環境に合わせてプログラムを修正する必要があります。
そのため、プログラミングの基本的な知識が必要になります。

AHKのプログラムは、決して難しくはありません。多少のクセはありますが、このブログのWordマクロでも説明している「プログラミングの基本」(変数など)を理解していれば、すぐに習得できます。

何も知らずに勉強会に行くよりも、ある程度理解した上で参加した方が、より理解が深まり勉強会の内容も充実するのではないかと思います。

「超初心者のためのAHKプログラミング入門」的なことも考えていますが、どうするかは現時点では未定です。導入してみたい方、学習してみたい方の相談には喜んで応じます。「こんなことをしてみたいけど、できますか?」といった質問でも結構です。ご希望の方はご連絡ください(FacebookまたはTwitter)。過度に期待されても困りますが、可能な範囲でお手伝いしたいと思います。

この手のツールは、各自がどう使うか何をしたいかで使い勝手がずいぶん違うんですよねぇ…

では、また。


コメントしてみる

4 thoughts on “AutoHotKeyについて

  • 1024yub4u4bgn

    超初心者です。AutoHotKey L使って、Gメールログインしたいと考えています。ControlClickのコマンドを使って「ログイン」の箇所を自動的にクリックさせたのですけど、どうしても上手くいきません。専門家はどのように書くものなのでしょうか?

    • しんハム Post author

      こんにちは。 専門家ではありませんが… まず、「どのようなコード」が「どう上手くいかないのか」が分からないと答えようがありません。 すでに「spy」を使ってコントロール(位置)やウィンドウの情報は取得されていると思いますし、ContrlClickコマンドについても(Wiki等で)確認されていると思います。また、サンプル等も参考にされていると思います。 複雑なコードではないはずですので、1行ずつデバッグするなど、動作を確認しながらコードを確認してみてください。

      追記:自動ログインについては、セキュリティ上の問題も考えられますので、コードなどの公開は避けたほうがよいでしょう。