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 , OnOffToggle, DarunterliegendenThreadEinbeziehen

Parameter

OnOffToggle

Wenn dieser Parameter weggelassen wird oder leer ist, wird standardmäßig Toggle verwendet. Ansonsten kann eines der folgenden Wörter angegeben werden:

Toggle: Pausiert den aktuellen Thread, es sei denn, der Thread darunter ist pausiert, dann wird 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.

[v1.1.30+]: Es ist möglich, die dezimalen Werte 1, 0 und -1 anstelle von On, Off bzw. Toggle zu verwenden.

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

Standardmäßig kann das Skript auch via Tray-Symbol oder Hauptfenster pausiert werden.

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 Tray-Symbols 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.

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

Siehe auch

Suspend, Menu, ExitApp, Threads, SetTimer

Beispiele

#1

Pause::Pause  ; Weisen Sie die Toggle-Pause-Funktion der PAUSE-Taste zu...
#p::Pause  ; ... oder weisen Sie sie WIN+P oder einem anderen Hotkey zu.

#2: Sendet einen Pause-Befehl an ein anderes Skript.

DetectHiddenWindows, On
WM_COMMAND := 0x111
ID_FILE_PAUSE := 65403
PostMessage, WM_COMMAND, ID_FILE_PAUSE,,, C:\MeinSkript.ahk ahk_class AutoHotkey