スクリプトの現在のスレッドを一時停止します。
Pause NewState
型:整数
省略された場合、現在のスレッドは一時停止されます。そうでないときは、次のいずれかの値を指定します:
1
または True
:現在のスレッドの下にあるスレッドを一時停止状態としてマークし、再開時に実行中の関数があればそれを終了させ、一時停止状態に入るようにします。現在のスレッドの下にスレッドがない場合、スクリプト自体が一時停止され、タイマーの実行が妨げられます(この効果は、スクリプトにスレッドがないときにメニュー項目「スクリプトの一時停止」を使用した場合と同じです)。
0
または False
:基礎となるスレッドの一時停止を解除します。
-1
:基礎となるスレッドの一時停止状態をトグルします。
デフォルトでは、トレイアイコンまたはメインウィンドウからスクリプトを一時停止することも可能です。
ホットキーや ホットストリングを無効にするSuspendとは異なり、pauseをオンにするとスレッド(NewStateが省略された場合は現在のスレッド、そうでない場合はその下のスレッド)がフリーズします。副次的な効果として、その下にある中断されたスレッドは休眠状態になります。
どのスレッドも一時停止すると、タイマーは実行されません。一方、ホットキーや メニュー項目など、明示的に起動されたスレッドはまだ起動可能ですが、それらのスレッドが終了すると、その下にあるスレッドはまだ一時停止しています。つまり、各スレッドは他のスレッドとは独立して一時停止することができるのです。
The tray icon changes to (or to if the script is also suspended), whenever the script's current thread is in a paused state. このアイコンの変更は、TraySetIcon(,, true)
を使ってアイコンをフリーズさせることで回避できる。
スクリプトを一時停止せずにタイマーを無効にするには、Thread NoTimersを使用します。
スクリプトが何らかのメニュー(トレイメニュー、メニューバー、GUIコンテキストメニューなど)を表示している間は、常に中断されます(正式には一時停止ではありません)。
The built-in variable A_IsPaused contains 1 if the thread immediately underneath the current thread is paused and 0 otherwise.
Suspend、Menuオブジェクト、ExitApp、スレッド、SetTimer
変数の検査など、スクリプトを停止させる場合は、Pauseを使用します。
ListVars Pause ExitApp ; This line will not execute until the user unpauses the script.
ホットキーを1回押すと、スクリプトを一時停止することができます。もう一度押すと、一時停止が解除されます。
Pause::Pause -1 ; The Pause/Break key. #p::Pause -1 ; Win+P
DetectHiddenWindows True WM_COMMAND := 0x0111 ID_FILE_PAUSE := 65403 PostMessage WM_COMMAND, ID_FILE_PAUSE,,, "C:\YourScript.ahk ahk_class AutoHotkey"