1 (изменено: efremov30ev, 2020-06-04 18:20:47)

Тема: AHK: Сброс функции

Здравствуйте!
Имею данный код:

Gui, Add, Button, ... ... ... ... ... gFunction1, Функция1
Gui, Add, Button, ... ... ... ... gFunction2, Функция2
Gui, Show, ... ..., Window

Function1:
Gui, Submit, NoHide
y:=1
return

Function2:
Gui, Submit, NoHide
y:=2
return

sc29::
if (y=1)
Loop{
...
}

if (y=2)
Loop{
...
}
return

Запуск происходит на один и тот же хоткей.
Вопрос следующий: Например, я выбрал Функцию1 и запустил цикл. Чтобы выбрать Функцию 2 надо перезагрузить срипт. Можно ли выбрать Функцию2 просто нажав на кнопку "Функция2" в окне интерфейса, не прибегая к перезапуску скрипта? То есть, нажал "Функция1", затем хоткей и запускается первый цикл, нажал НЕ перезапуская "Функция2", затем хоткей и запускается второй цикл.

Заранее благодарен!

2

Re: AHK: Сброс функции

Говоря общепринятыми терминами... У Вас есть один GUI, две функции и одна горячая клавиша. Производя манипуляции в GUI, переменной "y" присваиваете то или иное значение. По нажатию горячей клавиши, в зависимости от значения переменной "y", запускается тот или иной бесконечный цикл. Вы пытаетесь запустить второй цикл, но ничего не происходит.

Что нужно знать. Цикл может крутиться бесконечно или ограниченное число раз (в Вашем примере - бесконечно). Также цикл может быть прерван другим потоком (к примеру горячей клавишей, подробнее про потоки читайте в справке).

Конкретно в Вашем случае по горячей клавише сначала проверяется значение переменной "y", а только потом происходит выбор, который запустить цикл. На Вашем месте я бы сразу запустил цикл, а уже внутри цикла стал бы проверять значения "y", и в зависимости от него выполнять то или иное действие.