ZIPアーカイブ版は、解凍するだけで実行可能になる。
インストーラー版は、実行すると表示される画面で「Next>」「I Agree」「Next」「Install」の順に押していけばインストールできる。
AutoHotkeyをインストーラーでインストールすると、拡張子「.ahk」のファイルに関連付けが行われ、拡張子「.ahk」のスクリプトファイルをエクスプローラでダブルクリックしたときなどにAutoHotkey.exeで実行されるようになる。
右クリックメニューには、スクリプトを実行する「Run Script」の他、後述のahk2.exeで実行ファイル化する「Compile Script」、notepad.exeでスクリプトファイルを開く「Edit Script」が追加される。
また、インストーラーの「Choose Components」の画面で「Enable drag & drop onto scripts」にチェックをした場合、スクリプトファイルのアイコンにファイルをドラッグ&ドロップしたときに、スクリプトファイルに引数(%1%)として送られるようになる。
ahk2exe.exeを使うことで、スクリプトを実行ファイル化することが可能。
実行ファイルはUPXによる圧縮が施される。
逆コンパイラも公開されているが、パスワードで暗号化すれば逆コンパイルを防げる。
作成した実行ファイルの配布は自由。
コンパイルされたスクリプトでは通常、タスクトレイメニューからメインウィンドウを表示することは出来ない。
「Menu,TRAY,MainWindow
」でメインウィンドウを表示可能にできる。
スクリプト側から、コンパイルされた状態で実行されているかどうかを知るには、「A_IsCompiled」変数を使用する。「1」ならコンパイルされている。
Ahk2exe.exe /in <infile.ahk> [/out <outfile.exe>][/icon <iconfile.ico>][/pass <passphrase>] [/NoDecompile]
Ahk2exe.exeはコマンドラインから直接コンパイルを実行することも可能。
CompiledScript.exe [/f] [/r] [/ErrorStdOut] [Script Parameters]
コンパイルして作成された実行ファイルは、上記のコマンドラインで実行できる。
Script Filenameの指定が無い以外はAutoHotkey.exeと同じである。
AutoHotkey.exeはAutoHotkeyのスクリプトを実行するメインプログラムである。
実行時のコマンドラインは以下のような書式になっている。
スクリプトファイルを関連付けから実行する場合は、意識する必要はない。
AutoHotkey.exe [/f] [/r] [/ErrorStdOut] [Script Filename] [Script Parameters]
各オプションの意味は以下の通り。
単にAutoHotkey.exeを実行するなど、Script Filenameを指定せず起動した場合は、起動時の作業ディレクトリのAutoHotkey.iniが読み込まれる。
ファイルが存在しない場合、My Documentsディレクトリ内のAutoHotkey.iniが読み込まれ、それも存在しない場合はMy Documentsディレクトリ内にAutoHotkey.iniを作成してよいかを問い合わせるダイアログが表示される。
Script Filenameを指定しないと、Script Parametersを指定することは出来ない。
Script Parametersには任意の数の文字列をスペース区切りで渡せる。
スペースを含む場合は「"」で囲む。
渡された引数は、変数に格納され、スクリプト内で「%1%」、「%2%」……のように記述することで参照できる。
「%0%」には引数の数が格納される。
なお、スクリプト自身のパスを取得するには「%A_ScriptFullPath%」変数を使用する。
スクリプトのエラーには、読み込み時のエラーと実行時のエラーがある。
存在しないコマンドや関数の呼び出し、コマンドの書式間違い、存在しないラベルの指定、開き括弧と閉じ括弧の対応の不備などが読み込み時エラーとなる。
これらの問題のあるスクリプトを実行しようとすると、エラー箇所やエラー概要などがダイアログで表示され、実行は行われない。
スクリプトの実行中にコマンドが何らかの形で失敗した場合などには、実行時エラーとなる。
実行時エラーが発生すると、ダイアログが表示され、エラーの発生したスレッドはその場で終了する。
ホットキーなどが割り当てられて常駐状態になっているスクリプトでは、スクリプト自体は終了しない。しかし、スクリプトが期待通りに実行されなかったことで、その後の実行に支障を来す場合がある。
タスクトレイアイコンの右クリックメニューから「Reload This Script」を実行することで、スクリプトを読み込み直して実行できる。
また、常駐状態になっているスクリプトは、同じスクリプトをもう一度起動することで、「既存のプロセスを終了して起動するか」を問い合わせるダイアログが表示され、「はい」を選ぶことで再読込する。
Reloadコマンドでスクリプト中から再読込を行わせることも可能。
AutoHotkey.exeを実行すると、タスクトレイにアイコンが表示される。(これは#NoTrayIcon指令やMenuコマンドで非表示に出来る)
ダブルクリックでAutoHotkeyのメインウィンドウが表示されるほか、右クリックメニューから以下の操作が実行できる。
AutoHotkeyのメインウィンドウでは、実行中のスクリプトの様々な情報を表示できる。
表示モードはメニューバーの「View」以下から選択して切り替える。
また、各画面を表示するためのコマンドもそれぞれ用意されている。
いずれの画面も、呼び出しコマンドを実行するか「F5」キーを押すことで最新の情報に更新できる。
実行されたスクリプトの行が順番に表示される。
この画面はListLinesコマンドでも表示できる。
Script lines most recently executed (oldest first). Press [F5] to refresh. The seconds elapsed between a line and the one after it is in parentheses to the right (if not 0). The bottommost line's elapsed time is the number of seconds since it executed. 002: Return (2.59) 003: Sleep,100 (0.11) 004: MsgBox (1.63) 005: ListLines Press [F5] to refresh.
行番号と行の内容が実行された順に表示される。行の内容は、実際にスクリプトファイルに記述されているものと同じとは限らないが、意味は全く同じになってる。
行の内容の後に付いていることのある数字の入った「()」は、次の処理が実行されるまでに経過した時間(秒)である。
何らかの理由でスクリプトの処理が行われなかった期間がある場合に表示される。
スクリプトによって作成された変数とその内容が一覧表示される。
この画面はListVarsコマンドでも表示できる。
Local Variables for func2() -------------------------------------------------- b[1 of 1]: a Global Variables (alphabetical) -------------------------------------------------- 0[1 of 1]: 0 ErrorLevel[1 of 1]: 0 value[8 of 63]: aaaaaaaa
各行の先頭が変数名である。一覧は変数名順に並べられている。
変数名の後の「[x of y]」となっている部分は、左の数字が変数の内容の文字数、右の数字が変数のために確保されているメモリの容量(VarSetCapacity()関数で設定可能)である。
「:」より右に変数の内容の先頭60バイト分が表示される。
画面が表示された時点でAutoHotkeyのユーザー定義関数が実行されている場合は、関数内でのみ有効なローカル変数の一覧が表示される。(「Local Variables for ...」以下の部分)
関数の中から他の関数呼び出しが行われている場合でも、現在実行されている一番上位の関数の物のみが表示される。
スクリプトによって割り当てられているホットキーが一覧表示される。
この画面はListHotkeysコマンドでも表示できる。
Type Off? Running Name ------------------------------------------------------------------- reg F1 m-hook MButton k-hook $F2 k-hook F3
それぞれの列の意味は以下の通り。
キーボードの履歴や押されているキー、その他スクリプトの情報などが表示される。
KeyHistoryコマンドでも表示できる。
Window: E:\test\test.ahk - AutoHotkey v1.0.44.07 Keybd hook: yes Mouse hook: yes Enabled Timers: 0 of 0 () Interrupted threads: 0 Paused threads: 0 of 0 (0 layers) Modifiers (GetKeyState() now) = Modifiers (Hook's Logical) = Modifiers (Hook's Physical) = Prefix key is down: no NOTE: To disable the key history shown below, add the line "#KeyHistory 0" anywhere in the script. The same method can be used to change the size of the history buffer. For example: #KeyHistory 100 (Default is 40, Max is 500) The oldest are listed first. VK=Virtual Key, SC=Scan Code, Elapsed=Seconds since the previous event. Types: h=Hook Hotkey, s=Suppressed (blocked), i=Ignored because it was generated by an AHK script, a=Artificial, #= Disabled via #IfWinActive/Exist. VK SC Type Up/Dn Elapsed Key Window ------------------------------------------------------------------------------------------------------------- 78 043 u 0.08 F9 E:\test\test.ahk - VxEditor 70 03B d 2.61 F1 70 03B u 0.11 F1 01 000 d 0.98 LButton 01 000 u 0.08 LButton Press [F5] to refresh.
上部に表示される情報の意味は以下の通り。
履歴部分の説明文に続きキーの履歴が表示される。
下に行くほど新しいイベントである。
それぞれの列は以下のような意味になっている。