AutoHotkey スクリプトを ahk2exe でコンパイルしてつくった実行ファイルの仕様
良さそうならメインの実行ファイル化手段として採用したいなと思って、ちょいと調べてみた。
- 前提
- Q: コンパイルするためのコマンドラインは?
- Q: #Include しているスクリも取り込まれる?
- Q: 実行ファイルサイズは?
- Q: 実行時に他のランタイム等は必要?
- Q: エラー発生時はどう見える?
- Q: プロパティ情報はどう見える?
- Q: スクリプト内容は暗号化される?(秘匿できる?)
- 参考
- 結論
前提
- Windows 7 x86
- AutoHotkey v1.1.10.1
Q: コンパイルするためのコマンドラインは?
Ans: Ahk2Exe.exe に /in で ahk ファイルを与えて、/out で実行ファイル名を与える。
$ dir "D:\work\ahk\test_compile" /b menu.ahk menu_config.ahk $ "C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "D:\work\ahk\test_compile\menu.ahk" /out menu.exe
Q: #Include しているスクリも取り込まれる?
Ans: 取り込まれる
前述では menu.ahk から menu_config.ahk を #Include しているが menu.exe は問題なく動作する。
Q: 実行ファイルサイズは?
Ans: (スクリ次第だろうが)100行程度のスクリで 805KB
Q: 実行時に他のランタイム等は必要?
Ans: 不要
生成された実行ファイル一つのみで動作する。
Q: エラー発生時はどう見える?
Ans: ダイアログが出る
タイトルは実行ファイル名、本文はスクリプト実行時に出るエラーと同じ。
Q: プロパティ情報はどう見える?
右クリックプロパティ > 詳細タブの話。
Ans: ファイルバージョンと製品バージョンに「コンパイル元 AHK のバージョン」が入る。
独自のバージョン情報を入れたい場合は Resource Hacker などの「実行ファイルを直接いじる系ツール」を使う。
Q: スクリプト内容は暗号化される?(秘匿できる?)
Ans: できない
実行ファイルをテキストエディタで開いてみると、末尾の方にモロに ahk スクリプトが書かれているのがわかる。
Ahk2exeのソース を見ても暗号化っぽいことは何もしていない。
参考
結論
結論: 採用
- 手軽だし軽いので、ちょっとしたツールを配布する用途では優秀
- スクリ内容を秘匿できないので業務利用レベルはさすがにキツイが、ちょっとした個人用ツールなら十分