##初めに
主にWin上で ”使える” スクリプト言語である**「AutoHotkey」(略称AHK)**について語る記事です。
Qiitaを始めた記念に、テスト投稿も兼ねて超マイナー言語ながら便利なAHKの使い方を簡単に紹介するだけの記事です。良かったら読んでください。
当方の無知&不勉強のために説明文に少し、もしくは多分に間違いが存在するかも知れませんが、その折はクールにツッコミを下さればなるべくナイスな訂正記事を返すのでよろしくお願い致します。
そもそもAutoHotkeyって何だって方はAutoHotkey Wikiをご覧下さい。
##AutoHotkeyの利便性
AutoHotkeyはもともとWindowsで動くホットキーランチャを記述するための言語だったらしいんですが、
(呼び出す動作をプログラムで制御できるため、通常のコマンドで呼び出すランチャよりも便利な側面があった)
機能拡張を繰り返した現在ではGUIでもOS・他プロセスの制御でも何でもござれな多機能言語に変貌され、上手く使えば短い記述で大きなパフォーマンスを発揮するツールを作ることができます。
以下にいくつか例を示します。
; 左クリックを押しながらホイールスクロールで次を検索/前を検索
LButton & WheelUp::Send, +{F3}
LButton & WheelDown::Send, {F3}
; ホイールスクロールでシーク移動(動画プレーヤー「NicoPlayer」ウィンドウ内でのみ有効)
#IfWinActive, ahk_class CNicoPlayer
WheelUp::Send, +{Left}
WheelDown::Send, +{Right}
いかがでしょうか?
ホットキーの定義を書いたものですが、わずか数行。上記のコードを保存して「AutoHotkey.exe」を実行・常駐させておくだけで既にこれらのホットキーは有効となっています。
たったこれだけで、スクロールするしか能の無いマウスホイールをさまざまな別動作に割当てできる、この開発速度と多機能性がAutoHotkeyの強みです。
以下は複数行に渡るコードの例。
; [Win]キーを押しながら[G]キーで、テキストボックスを呼出し、入力した語句をGoogleで検索
#g::
InputBox, OutputVar, Search for Google
Run, C:\Program Files\Internet Explorer\iexplore.exe "https://www.google.co.jp/search?hl=ja&q=%OutputVar%"
return
; 右クリックを押しながら左クリックで、選択した文字列をGoogleで検索
RButton & LButton::SearchSelectedWord()
SearchSelectedWord(){
Send, ^c
ClipWait, 1
Run, C:\Program Files\Internet Explorer\iexplore.exe "https://www.google.co.jp/search?hl=ja&q=%Clipboard%"
}
こちらは「Googleで検索」という、普段何気なく行っている使用頻度の高い作業をホットキー一発で行うコードです。
複数行に渡る操作を前者はそのまま記述、後者は関数化していますが、これだけ短いコードだと正直どちらのスタイルでも構いません。
極力短いコードで必要な作業を記述できる、という速さが重要なのです。...個人的には。
いや、ツール作成にあまり手間や時間がかかると「途中で飽きた」となったり「そもそも作る気にならん」と敬遠されるのが経験上あまりにも多いわけでして。
特に個人で開発する上ではAutoHotkeyのスピードは強力な武器となります。
その分、コード規約が緩い(C#、Javaと比較して)など多人数で開発するには不向きな面もあるのですが、規模の大きいプログラムが作れないわけではないんでご安心を。
次回の記事ではもう少し複雑なコードを紹介する予定です。
初記事で走り書きのため短いですが本記事はここまで。
下記の作品置き場(GitHub)にもいくつかAHKを使ったGUIアプリを公開しているので良ければ参考にご閲覧どうぞ。
著者:akatubame
GitHub:https://github.com/akatubame/