ahk2exe

ahk2exeによりスクリプトをコンパイルすることで、AutoHotKeyのスクリプトをスタンドアローンの実行可能ファイルにできます。こうすることでAutoHotKeyがインストールされていない環境でも、スクリプトを実行できるようになります。

このコンパイラを使用するには、AutoHotKeyのインストール時に[Script Compiler]のコンポーネントがインストールされている必要があります。

特徴

  • コンパイルしてもパフォーマンスの向上は見込めず、起動がわずかに遅くなる。
  • コンパイルされたスクリプトでは、組み込み変数のA_IsCompiledにより内部的にそれを確認できる。
  • 作成した実行可能ファイルの配布や販売に、制限はない。
Convert a Script to an EXE (ahk2exe) - Scripts - Definition & Usage | AutoHotkey Convert a Script to an EXE (ahk2exe) - AutoHotkey Scripts and Macros (v1.0)

実行時のエラーは、AutoHotkey.exeから実行したときと同様に表示されます。

コンパイルの方法

コンパイルには、

  1. CUI (コマンドライン)
  2. GUI
  3. エクスプローラーのコンテキストメニュー

の3つの方法があります。

CUI

コマンドプロンプトから、Ahk2Exe.exeを実行します。

Ahk2Exe.exe /in MyScript.ahk /icon MyIcon.ico
Ahk2Exe.exe /in MyScript.ahk
  [/out MyScript.exe]
  [/icon MyIcon.ico]
  [/bin AutoHotkeySC.bin]
  [/mpress 0 or 1]
パラメータ 説明
/in コンパイルするスクリプト ファイル名
/out コンパイル結果の実行ファイル名
/icon アプリケーションのアイコン

アイコンに指定できるのは、.icoフォーマットのファイルのみ

/bin ベース ファイル
  • ANSI 32bit
  • Unicode 32bit
  • Unicode 64bit ※1
/mpress 1とすると、実行ファイルをMPRESSで圧縮する
/cp codepage

※1 32bit環境での使用も想定するならば、32bitを選択します。

MPRESS

MPRESSは、次のページから入手できます。

MPRESS - Free high-performance executable packer for PE32/PE32+/.NET/MAC-OS-X

ダウンロードしたファイルを展開し、そこに含まれるmpress.exeをAutoHotKeyのインストール フォルダにあるCompilerフォルダに移動します。

たとえば、

MsgBox

という1行のスクリプトをコンパイルしたとき、そのファイルサイズは

  • MPRESSなし … 1141KB
  • MPRESSあり … 427KB

のように小さくなります。

Unicode 64bit以外のコンパイルにMPRESSを使用すると、作成されたファイルはNortonによってマルウェア (Suspicious.Cloud.5) とみなされることがあります。

GUI

スタートメニューから[Convert .ahk to .exe]を起動します。このツールでは、前述のコマンドラインでの処理をGUIで行えます。

[Convert]したときに、Error: Unable to copy AutoHotkeySC binary file to destination.としてエラーとなるときは、先にコンパイルした同名の実行ファイルが実行中ではないか確認します。

エクスプローラーのコンテキストメニュー

エクスプローラーで.ahkファイルを右クリックし、[Compile Script]を実行します。

作成される実行ファイルの名前はスクリプトのそれと同じで、その他の設定は前述の2つの方法で最後に実行されたときの設定を引き継ぎます。

バージョン番号の変更

作成された実行ファイルのバージョン番号は、コンパイルに用いたAhk2Exeのバージョン番号が設定されます。これはコンパイル時に指定したAutoHotkeySC.binなどのファイルで定義されているため、これを編集することでバージョン番号を変更できます。

編集はResource Hackerで行え、編集後のファイルをコンパイル時に/binで指定します。

逆コンパイルの方法

逆コンパイル用のExe2Ahkというツールが提供されていますが、これはAutoHotkey 1.0 (AutoHotkey Basic) 用であり、それ以降では動作しません。

Exe2Ahk.exe CompiledScript.exe [password]