AHK[AutoHokey]とは、Microsoft Windows上で動作するユーティリティソフトウェアのことでもでありスクリプト言語のことでもあります。
私はこれを使って、色々なソフトを表面的に動かしてもっと便利に快適になるように施しています。
例えば、低機能エディタ用のコードスニペットを作ってボタン一つでswitch文を書いてくれたり、私はトレーダーとしてMT4やMT5をよく使いますので特定のメッセージをショートカットキーで送ることによって瞬時にチャート画面を切り替えたり計算したりしています。
このようにソフトを内部からではなく、表面的に対象のソフトを動かして自分でどのようにでもカスタマイズできるのですごく便利なのです。
この記事ではAHKを始めるための準備として、AHKのインストールと使い方を紹介したいと思います。
AHKのインストール
AHKをインストールするためには、下記のURLへアクセスしてセットアップファイルをダウンロードしてください。
AHKホームページ: https://www.autohotkey.com/
以下の画面になると思いますので、「Download」ボタンを押してください。
「Download」ボタンを押した後に、「Download Current Version」をクリックします。これは今現在の最新のバージョンということになります。
クリックした後に、ダウンロードされます。
ダウンロードできたら、実行してください。
すると、以下の画面になるので、最初なのでカスタム設定ではなく標準の設定でいこうと思いますので「Express Installation」を選びます。
「Default version」が「Unicode 64-bit」であるのでこれで良いでしょう。
クリックしたらインストールが勝手に完了します。
その後に、「インストールできましたのでその後はどうしますか?」みたいな画面になるので、ここではAHKを起動せず「Exit」を選びます。
これでインストール完了です。
かなり簡単だと思います。
後は、ソースを書いてコンパイルしてexeファイルを生成するだけです。
スクリプトソースの作成
ソースは全てahkファイルに書きます。
まず、エディタでもメモ帳でもいいので開いて.ahkで保存してください。
例えば、「sample.ahk」という風に拡張子を.ahkにしてファイルを保存します。
文字コードは「Shift-JIS」でOKです。
スクリプトの書き方は今後の記事で書いていくので今はやりません。
コンパイルの方法
先ほど作成した「sample.ahk」をコンパイルし、exeを生成するためには、
インストールしたときの「Express Installation」選択時に表示されていた「Install in: C:\Program Files\AutoHotkey」のパスにコンパイラがあるのでそのディレクトリパスをエクスプローラーで開きます。
そこにズラッとある中から一番上に「Compiler」フォルダがありますので、それを開いて、その中に「Ahk2Exe.exe」という実行ファイルがあるのでダブルクリックして実行してください。
すると、以下の画面が立ち上がると思います。
上から順に解説すると、
・コンパイルするスクリプトファイル(.ahk)
・生成したexeファイルを置くディレクトリパス
・自身が指定するアイコン画像(.ico)
・バイナリの形式
(Default, ANSI 32-bit[ASCII対応], Unicode 32-bit, Unicode 64-bit)のどれか。Defaultは最適な形式を選ぶ。普通はUnicode 64-bit。
・exeファイルの圧縮形式
(なし, MPRESS, UPX)のどれか。圧縮するとセキュリティソフトのマルウェア検知に引っ掛かりやすい。
各項目で設定した後は、下にある「Convert」を押すとexeファイルが出力されます。
ちなみに、コンパイルするスクリプトファイルだけを指定してコンパイルして問題ありません。
ただ、全てデフォルトになり、出力先はahkファイルと同階層のディレクトリパスで、アイコンはAHKのデフォルトアイコンになり、バイナリ形式もデフォルト、ファイル圧縮は使わずにexeファイルが出力されるということになります。
AHKの特性
AHKは、独自のスクリプト言語になります。
何かに似ているとかはあまり私は思いつきません(笑)
かなり独自性が高いかなと思います。
人によっては使いにくいとか、構文があやふやで分からないといったことが最初は起こるので慣れるまでその試行錯誤して実験するしか手はないと思います。
私の感想としては、少しの構文の違いでコンパイルからここ違うよと指摘されてそのクセに気づかされることが一杯あるので書きにくいかなとは感じています。
ですが、一つのアプリとして作成して使ってみたときは本当に便利で快適なPC環境になりましたので、AHKを使ってみることには断然オスススメします。
このスクリプト言語はスゴいクセがあるので今後公開するソースで慣れていってもらいたいです。
例えば、IfNotExistを使う場合とIfを使う場合で違います。
IfNotExistの場合だと、
IfNotExist, 〇〇〇
×××
IfNotExist, 〇〇〇
{
×××
}
の2つしか処理が通りませんが、
Ifの場合だと、
If(〇〇〇)
×××
If(〇〇〇) {
×××
}
If(〇〇〇)
{
×××
}
の3つです。
なので、IfNotExistで、
IfNotExist, 〇〇〇 {
×××
}
では処理が通らないので処理の通る2つで分かりやすいように予め構文を固めた方がいいということになります。
それか、
IfNotExist, 〇〇〇
{
×××
}
If(〇〇〇)
{
×××
}
で統一させた方が良いかもしれません。
ちなみに、
IfNotExist, 〇〇〇 ×××
If(〇〇〇) ×××
は処理が通らず構文エラーになるので覚えておいてください。
AHKのリファレンスは、Wikiとして存在しますので活用していただけたらなと思います。URLは以下です。
AutoHotkey Wiki: https://ahkwiki.net/Top