Pause

Pausiert den aktuellen Thread des Skripts.

#p::Pause ; Drücken Sie einmal WIN+P, um das Skript zu pausieren. Drücken Sie ihn nochmals, um die Pause aufzuheben.
Pause [, On|Off|Toggle, DarunterliegendenThreadEinbeziehen?]

Parameter

On|Off|Toggle

Fehlt dieser Parameter oder ist er leer, gilt standardmäßig Toggle. Ansonsten kann eines der folgenden Wörter angegeben werden:

Toggle: Pausiert den aktuellen Thread, aber wenn der Thread unter ihm pausiert ist, wird der darunterliegende Thread fortgesetzt.

On: Pausiert den aktuellen Thread.

Off: Wenn der Thread unter dem aktuellen Thread pausiert ist, wird er bei Wiederaufnahme im nicht-pausierten Zustand sein. Ansonsten hat der Befehl keine Wirkung.

DarunterliegendenThreadEinbeziehen?

Dieser Parameter wird bei Pause Off ignoriert, weil dies immer den darunterliegenden Thread einbezieht. Bei den anderen wird er ignoriert, sofern Pause nicht eingeschaltet wurde (einschließlich via Toggle).

Geben Sie eine der folgenden Nummern an:

0 (oder weggelassen): Der Befehl pausiert den aktuellen Thread; also der Thread, der den Pause-Befehl ausgeführt hat.

1: Der Befehl markiert den Thread unterhalb des aktuellen Threads als pausiert, so dass er bei Wiederaufnahme den zurzeit laufenden Befehl (falls vorhanden) fertig ausführt und dann in einem pausierten Zustand verfällt. Gibt es keinen Thread unterhalb des aktuellen Threads, wird das Skript selbst pausiert, was Timer stoppen würde (dieser Effekt ist das gleiche wie, als hätte man den Menüpunkt "Pause Script" verwendet, während das Skript keine Threads hat).

Hinweis: A_IsPaused enthält den Pausezustand des darunterliegenden Threads.

Bemerkungen

Im Gegensatz zu Suspend - das Hotkeys und Hotstrings deaktiviert - wird Pause den aktuellen Thread einfrieren. Als Nebeneffekt werden alle unterbrochenen Thread darunter inaktiv sein.

Immer wenn ein Thread pausiert wird, werden Timer nicht laufen. Dagegen können explizit gestartete Threads wie Hotkeys und Menüpunkte weiterhin gestartet werden; aber wenn ihre Threads zum Ende kommen, wird der darunterliegende Thread weiterhin pausiert sein. Das heißt, dass jeder Thread pausiert werden kann, unabhängig voneinander.

Die Farbe des Infobereichssymbols wechselt von Grün auf Rot, wenn der aktuelle Thread des Skripts in einem pausierten Zustand versetzt wird. Dieser Farbwechsel kann durch Einfrieren des Symbols verhindert werden - dazu muss im letzten Parameter des Menu-Befehls eine 1 angegeben werden. Zum Beispiel:

Menu, Tray, Icon, C:\Mein Symbol.ico, , 1

Mit Thread, NoTimers können Timer deaktiviert werden, ohne das Skript pausieren zu müssen.

Der Pause-Befehl hat die gleiche Funktion wie der interne Menüpunkt "Pause Script".

Ein Skript wird immer angehalten (aber offiziell nicht pausiert), wenn man ein Menü beliebiger Art anzeigt (Infobereichsmenü, Menüleiste, GUI-Kontextmenü und so weiter).

Siehe auch

Suspend, Menu, ExitApp, Threads, SetTimer

Beispiele

Pause::Pause  ; Verbindet die Toggle-Funktion von Pause mit der PAUSE-Taste ...
#p::Pause  ; oder mit WIN+P oder einem anderen Hotkey.
; Sendet einen Pause-Befehl zu einem anderen Skript.
DetectHiddenWindows, On
WM_COMMAND := 0x111
ID_FILE_PAUSE := 65403
PostMessage, WM_COMMAND, ID_FILE_PAUSE,,, C:\MeinSkript.ahk ahk_class AutoHotkey