Springt zu einem bestimmten Label und setzt dort die Ausführung bis zu einem Return fort.
Gosub, Label
Name eines Labels, Hotkey-Labels oder Hotstring-Labels, das angesprungen werden soll, um alle Befehle unterhalb von Label bis zu einem Return oder Exit auszuführen. Ein Return bewirkt, dass das Skript zum ersten Befehl unterhalb von Gosub zurückspringt und dort die Ausführung fortsetzt. Exit terminiert den aktuellen Thread.
Label kann, wie die meisten Parameter von anderen Befehlen auch, eine Variablenreferenz wie %MeinLabel% sein, um den Inhalt der Variable als Ziel zu verwenden. Allerdings geschieht das auf Kosten der Leistung, weil das Ziellabel jedes Mal neu gesucht werden muss und nicht wie sonst nur beim Starten des Skripts.
Es ist möglich, ein dynamisches Label wie %MeinLabel% anzugeben. In diesem Fall wird ein Fehlerdialogfenster angezeigt, wenn das Label nicht existiert. Um das zu verhindern, leiten Sie eine Überprüfung mit IsLabel() ein. Zum Beispiel:
if IsLabel(VarMitLabelName) Gosub %VarMitLabelName%
Obwohl Gosub für einfache, allgemeine Subroutinen nützlich ist, wäre es ratsam, für komplexere Anliegen Funktionen zu verwenden.
Return, Funktionen, IsLabel(), Blöcke, Loop, Goto, A_ThisLabel
Dieses Beispiel wird wie folgt ausgeführt:
Gosub, Label1 MsgBox, Die Label1-Subroutine hat das Return erreicht (sie ist fertig). return Label1: MsgBox, Die Label1-Subroutine läuft gerade. return