Reload
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
Reload[編集]
現在実行中のスクリプトを再読み込みする。
Reload
Remarks[編集]
スクリプトを再読み込みする。
スクリプト実行中にスクリプトに修正を加えたとき、それを反映させることができる。
スクリプトの動作を確認しながら調整を行う場合、ホットキーに割り当てておくと便利。
タスクトレイメニューの Reload This Script
と同じ。
現在のスクリプトに渡されたコマンドライン引数は、リロード後に新規起動されたスクリプトには一切渡らないので、引数が必須となるようなスクリプトでは Reload
を利用しないこと。その場合は、組み込み変数の A_AhkPath , A_ScriptFullPath (場合によっては A_IsCompiled で分岐が必要) および 1..9 のコマンドライン引数を Run コマンドで実行することで代用が可能。
Reloadコマンドが実行されたあとも、スクリプトは以降の行の実行を続け、新しく実行されたプロセスが正常にスクリプトを開始できた時点で、元のプロセスが終了される。
スクリプトが文法エラーなどでリロード不可能な場合、元のプロセスはそのまま実行される。
よって、ReloadコマンドのあとにはReturnコマンドを書くなどして、余計なコマンドが実行されてしまうのを防ぐ必要がある。
また、Reloadコマンドのあとにリロード失敗時の動作を書くことも可能である。
Related[編集]
Example(s)[編集]
#z::Reload
;何らかの理由でリロードに失敗したときに特定の処理をする例
#z::
Reload
Sleep,500
MsgBox,リロード失敗
Return
;リロード実行後に、文法エラーが表示されたら、VxEditorで該当行を表示する例。
#z::
Reload
WinWait,ahk_class #32770,Error at line ,2
If ErrorLevel = 0
{
ControlGetText,v,Static1
StringGetPos,p,v,.
p -= 14
StringMid,line,v,15,%p%
Run,D:\app\Document\VxEditor\VxEditor.exe "%A_ScriptFullPath%" /j%line%
WinWaitNotActive
WinActivate
}
Return