Нужна помощь в написании скрипта? Close

Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.

ВконтактеГруппа Вконтакте Электронная почтаЭлектронная почта Личная страницаСимаков Яков ВК
home icon Все разделы
comunity icon Нужна помощь?

Gosub -Autohotkey

Переходит к указанной метке и продолжает выполнение, пока не сталкивается с возвратом (Return).

Gosub, Label

Параметры

Label Имя произвольной метки, метки горячей клавиши или строки автозамены, к которой будет переход. Все команды, следующие в тексте скрипта после этой метки, будут выполняться, пока не встретится Return или Exit. "Return" заставляет скрипт перейти обратно, к первой команде после Gosub, и продолжить там выполнение. "Exit" завершает текущий поток.

Примечания

Как и с параметрами почти всех других команд, метка может быть ссылкой на переменную, типа %MyLabel%, когда название, сохраненное в переменной, используется как цель. Однако, производительность немного снижается, поскольку метка должна быть найдена каждый раз, а не только однажды, при первой загрузке скрипта. При использовании динамической метки, вроде %MyLabel%, будет показан диалог ошибки, если метка не будет существовать. Чтобы избежать этого, необходимо предварительно вызвать IsLabel(). Например:

if IsLabel(VarContainingLabelName) Gosub %VarContainingLabelName%

Команда Gosub полезна для простых подпрограмм общего назначения. В более сложных случаях подумайте об использовании функций (см. статью справки о функциях).

Примеры

Gosub, Label1 MsgBox, Подпрограмма Label1 осуществила возврат (завершена). Return Label1: MsgBox, Подпрограмма Label1 выполняется Return

Уберём первый возврат (Return). Сначала выполнится действие №2, возвратится к действию №1 и затем снова действие №2.

Gosub, Label1 MsgBox, Действие №1 Label1: MsgBox, Действие №2 Return

Другой пример:

Gosub, Label1 MsgBox, Это сообщение мы не увидим ; Так как в Label1 есть команда Exit. Return Label1: MsgBox, Выход Exit ; Которая завершает как данную подпрограмму Label1, так и вызвавшую её.
Автор перевода: Archangel
Источник: http://www.script-coding.com/AutoHotkey/Gosub.html
Под редакцией ahk-wiki.ru от 21.08.19