使用方法

提供: AutoHotkey Wiki
移動: 案内検索
リファレンス > 使用方法

インストール[編集]

インストーラ版とZIP版が用意されている。
初回利用時はインストーラを利用した方が関連付けを自動で行ってくれるので使い勝手がよい。
ZIPアーカイブ版は、解凍するだけで実行可能になる。
インストーラーは英語表記だが特に難しい設定等は無い。
途中で出てくる「Enable drag & drop onto script」にチェックを入れると、スクリプトファイルへ直接ドラッグ&ドロップを行えるようになる。
これは AutoHotkey_L のインストーラを利用する場合も同様。

スクリプトファイルの関連付け[編集]

AutoHotkeyをインストーラーでインストールすると、拡張子 .ahkのファイルに関連付けが行われ、拡張子 .ahkのスクリプトファイルをエクスプローラでダブルクリックしたときなどにAutoHotkey.exeで実行されるようになる。
右クリックメニューには、スクリプトを実行する Run Scriptの他、後述のahk2.exeで実行ファイル化する Compile Script、notepad.exeでスクリプトファイルを開く Edit Scriptが追加される。
また、インストーラーの Choose Componentsの画面で Enable drag & drop onto scriptsにチェックをした場合、スクリプトファイルのアイコンにファイルをドラッグ&ドロップしたときに、スクリプトファイルに引数(%1%)として送られるようになる。

アップデート[編集]

AutoHotkey本体の更新があった場合は、最新のZIP版を取得して「AutoHotkey.exe」および「AutoHotkeySC.bin」を上書きすればよい。
(インストーラで再度インストールを行っても良い)。なお、この際実行中のスクリプトは全て終了させないと実行ファイルの上書きが出来ないので注意すること。

スクリプトの実行ファイル化[編集]

ahk2exe.exeを使うことで、スクリプトを実行ファイル化することが可能。
実行ファイルはUPXによる圧縮が施される。
逆コンパイラも公開されているが、パスワードで暗号化すれば逆コンパイルを防げる。
作成した実行ファイルの配布は自由。
コンパイルされたスクリプトでは通常、タスクトレイメニューからメインウィンドウを表示することは出来ない。
Menu,TRAY,MainWindowでメインウィンドウを表示可能にできる。
スクリプト側から、コンパイルされた状態で実行されているかどうかを知るには、 A_IsCompiled変数を使用する。 1ならコンパイルされている。

ahk2exe.exeのコマンドライン[編集]

Ahk2exe.exe /in <infile.ahk> [/out <outfile.exe>][/icon <iconfile.ico>][/pass <passphrase>] [/NoDecompile]

Ahk2exe.exeはコマンドラインから直接コンパイルを実行することも可能。

コンパイルされた実行ファイルのコマンドライン[編集]

CompiledScript.exe [/f] [/r] [/ErrorStdOut] [ScriptParameters]

コンパイルして作成された実行ファイルは、上記のコマンドラインで実行できる。
ScriptFilename の指定が無い以外はAutoHotkey.exeと同じである。

AutoHotkey.exeの実行[編集]

AutoHotkey.exeはAutoHotkeyのスクリプトを実行するメインプログラムである。
実行時のコマンドラインは以下のような書式になっている。
スクリプトファイルを関連付けから実行する場合は、意識する必要はない。

AutoHotkey.exe [/f] [/r] [/ErrorStdOut] [/CPnnn] [ScriptFilename] [ScriptParameters]

各オプションの意味は以下の通り。

/f 警告ダイアログを出さずに、強制的に起動
/r スクリプトを再読み込みしたいときに使用。
/ErrorStdOut 文法エラーをダイアログ表示せずに標準出力に出力する
/CPnnn AHKL 読み込むスクリプトのコードページで指定。
nnn にはコードページを10進数で指定する。

引数無しで AutoHotkey.exe 起動するなど ScriptFilename の指定が無い場合は、 マイドキュメントにある "AutoHotkey.ahk" を読み込むようになる。 このファイルが無い場合は新規作成するかどうかのダイアログが表示される。 (旧版との互換性の兼ね合いで、作業ディレクトリに "AutoHotkey.ini" がある場合はそれが優先される)

ScriptFilename を指定しない場合、ScriptParameters を指定することは出来ない。

ScriptParameters には任意の数の文字列をスペース区切りで渡せる(スペースを含む場合は "で囲む)。
渡された引数は、変数に格納され、スクリプト内で %1%、 %2%……のように記述することで参照できる。
%0%には引数の数が格納される。
なお、スクリプト自身のパスを取得するには %A_ScriptFullPath%変数を使用する。

スクリプトのエラー[編集]

スクリプトのエラーには、読み込み時のエラーと実行時のエラーがある。

存在しないコマンドや関数の呼び出し、コマンドの書式間違い、存在しないラベルの指定、開き括弧と閉じ括弧の対応の不備などが読み込み時エラーとなる。 これらの問題のあるスクリプトを実行しようとすると、エラー箇所やエラー概要などがダイアログで表示され、実行は行われない。

スクリプトの実行中にコマンドが何らかの形で失敗した場合などには、実行時エラーとなる。 実行時エラーが発生すると、ダイアログが表示され、エラーの発生したスレッドはその場で終了する。 なお、 RunHotkey などの一部コマンドでは、 実行時エラーを検出してスクリプトの実行が止まらないようにすることも可能。

ホットキーなどが割り当てられて常駐状態になっているスクリプトでは、スクリプト自体は終了しない。しかし、スクリプトが期待通りに実行されなかったことで、その後の実行に支障を来す場合がある。

リロード[編集]

タスクトレイアイコンの右クリックメニューから Reload This Scriptを実行することで、スクリプトを読み込み直して実行できる。
また、常駐状態になっているスクリプトは、同じスクリプトをもう一度起動することで、 既存のプロセスを終了して起動するかを問い合わせるダイアログが表示され、 はいを選ぶことで再読込する。
Reloadコマンドでスクリプト中から再読込を行わせることも可能。

AutoHotkey.exeのタスクトレイアイコン[編集]

AutoHotkey.exeを実行すると、タスクトレイにアイコンが表示される。(これは#NoTrayIconMenuコマンドで非表示に出来る)
ダブルクリックでAutoHotkeyのメインウィンドウが表示されるほか、右クリックメニューから以下の操作が実行できる。

Open AutoHotkeyのメインウィンドウを表示する。
Help ヘルプファイル(AutoHotkey.chm)を開く。
Window Spy ウィンドウ情報表示ツール・AU3_Spy.exeを起動する。
Reload This Script スクリプトを再読込し、最初から実行し直す(Reloadコマンドと同じ)
Edit This Script スクリプトをメモ帳(notepad.exe)で開く。
Suspend Hotkeys 割り当てたホットキーを全て停止する(Suspendコマンドと同じ)
Pause Script スクリプトを一時停止する(Pauseコマンドと同じ)
Exit スクリプトを終了する。ExitAppコマンドと同じ。

AutoHotkey.exeのメインウィンドウ[編集]

AutoHotkeyのメインウィンドウでは、実行中のスクリプトの様々な情報を表示できる。
表示モードはメニューバーの View以下から選択して切り替える。
また、各画面を表示するためのコマンドもそれぞれ用意されている。
いずれの画面も、呼び出しコマンドを実行するか F5キーを押すことで最新の情報に更新できる。

Lines most recently executed[編集]

実行されたスクリプトの行が順番に表示される。
この画面は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.

行番号と行の内容が実行された順に表示される。行の内容は、実際にスクリプトファイルに記述されているものと同じとは限らないが、意味は全く同じになってる。
行の内容の後に付いていることのある数字の入った ()は、次の処理が実行されるまでに経過した時間(秒)である。
何らかの理由でスクリプトの処理が行われなかった期間がある場合に表示される。

Variables and their contents[編集]

スクリプトによって作成された変数とその内容が一覧表示される。
この画面は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 ...以下の部分)
関数の中から他の関数呼び出しが行われている場合でも、現在実行されている一番上位の関数の物のみが表示される。

Hotkeys and their methods[編集]

スクリプトによって割り当てられているホットキーが一覧表示される。
この画面はListHotkeysコマンドでも表示できる。

Type  Off?  Running  Name
-------------------------------------------------------------------
reg         F1
m-hook      MButton
k-hook      $F2
k-hook      F3

それぞれの列の意味は以下の通り。

Type ホットキーの登録方法。以下のようなものがある。
reg Windowsのホットキー登録機構を利用して登録。
reg(no) ホットキーが無効化されているため、登録を解除してある。
k-hook キーボードフックによってキー押し下げを検知している。
m-hook マウスフックによってマウスボタン押し下げを検知している。
2hooks マウスとキーボードの両方のフックを使用している。
joypoll ジョイスティックのボタンを検出するための処理を行っている。
Off? Hotkeyコマンドなどによって一時的に無効化されている場合は OFFになる。
#IfWinActive の条件分けにより複数割り当てられたうちの一部のみが無効化されている場合は PARTになる。
Running ホットキーサブルーチンのスレッドが実行されている数
Name ホットキー名

Key history and script info[編集]

キーボードの履歴や押されているキー、その他スクリプトの情報などが表示される。
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.

上部に表示される情報の意味は以下の通り。

Window この画面が表示される直前にアクティブだったウィンドウのタイトル
Keybd hook キーボードフックが有効になっていれば yes
キーボードフックを有効にするには、 $修飾子付きホットキーを割り当てるか、#InstallKeybdHook を記述しておく。
Mouse hook マウスフックが有効になっていれば yes
マウスフックを有効にするには、マウスボタンにホットキーを割り当てるか、#InstallMouseHook を記述しておく。
Enabled Timers 有効化されているタイマーの数。 ()内は割り当てられたラベル名の一覧。タイマーの割り当てはSetTimerコマンドで行う。
Interrupted threads スレッドの割り込みによって停止しているスレッドの数
Paused threads Pauseコマンドなどによって停止しているスレッドの数
Modifiers (GetKeyState() now) 押し下げられている修飾キーの一覧(GetKeyState()関数などで押し下げ状態と認識されるもの)
Modifiers (Hook's Logical) 押し下げられている修飾キーの一覧(プログラムなどによって押し下げられているもの)
Modifiers (Hook's Physical) 押し下げられている修飾キーの一覧(実際にキーボードのキーが押し下げられているもの)
Prefix key is down MButton & LButtonのようなコンビネーションキーの左側に指定されてるキーが押されているとき yesになる。

履歴部分の説明文に続きキーの履歴が表示される。
下に行くほど新しいイベントである。
それぞれの列は以下のような意味になっている。

VK 操作されたキーの仮想キーコード。ホットキーラベルやSendコマンドなどで vk??のようにしてキー名の代わりに使用できる。
SC 操作されたキーのスキャンコード。ホットキーラベルやSendコマンドなどで sc???のようにしてキー名の代わりに使用できる。
Type イベントのタイプ。以下のものがある。
h フックを利用したホットキーが発動した。
s フックによってイベントが隠蔽された。
(あるキーにホットキーが割り当てられていて、そのキーの押し上げイベントには何も割り当てられていない場合、押し上げイベントが隠蔽される)
i AutoHotkey自身が生成したイベント(AutoHotkeyのホットキーは発動しない)
a 他のプログラムによって生成されたイベント
# ホットキーは割り当てられているが#IfWinActive の条件に一致しないので無視された。
Up/Dn キーを押した場合は d、離した場合は uになる。
Elapsed 一つ前のイベントからの経過時間(秒)
Key キー名
Window イベントが発生したウィンドウのタイトル。ウィンドウが切り替わった直後のイベントのみ表示される。