Автор Тема: Временный выход из цикла while, как выйти насовсем  (Прочитано 845 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн PomaH [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
  • Пол: Мужской
    • Награды
Код: AutoIt [Выделить]
HotKeySet("{ESC}","Quit") ;
HotKeySet("{!}","f1") ;
Global $cliking=True;
Func Quit()
    $cliking=False;
    Sleep(999);
    $cliking=True;
EndFunc
Func f1()
   While $cliking
   MouseClick("left",2325,842,1,1);
   MouseClick("left",2630,1375,1,1);
   WEnd
EndFunc

While True
   Sleep(999);
   WEnd
 

Почему цикл while после того как переменная стала фолс, не завершается, а только паузиться на 1 сек, и продолжается после тру. Как сделать так чтобы нажал на кнопку и функция прекратила работу? В тоже время нужна возможность заного возобновить работу функции.

Русское сообщество AutoIt


Помечен как лучший ответ пользователем PomaH Отправлен Март 09, 2017, 14:21:46

Оффлайн axsmak [?]

  • Кот
  • Новичок
  • *
  • Сообщений: 32
  • Репутация: 7
  • Пол: Мужской
    • Перекрёсток Алексея Бабиева
    • Награды
  • Версия AutoIt: 3.3.14.0
Ваша функция Quit() ничего не делала. В начале вызова и по выходу из функции переменная $cliking равна тру. Поэтому функция выхода должна только менять $cliking на фолс, а вот тру переменная становится при вызове цикличной функции, до запуска цикла
СпойлерТут нужно понимать, что пока выполняется функция по горячей клавише (в вашем случае это Quit()), цикл выполняемый на момент вызова этой функции заморожен и пойдёт дальше (а значит и анализировать состояние переменной $cliking) только после завершения функции Quit(). Но к этому моменту переменная $cliking уже снова равна тру. Вот ничего и не происходит.
Код: AutoIt [Выделить]
HotKeySet("{ESC}","Quit") ;
HotKeySet("{!}","f1") ;
Global $cliking=True;
Func Quit()
    $cliking=False;
EndFunc
Func f1()
    $cliking=True;
   While $cliking
   MouseClick("left",2325,842,1,1);
   MouseClick("left",2630,1375,1,1);
   WEnd
EndFunc

While True
   Sleep(999);
   WEnd

« Последнее редактирование: Март 09, 2017, 14:24:03 от axsmak »

Русское сообщество AutoIt

Re: Временный выход из цикла while, как выйти насовсем
« Ответ #1 Отправлен: Март 09, 2017, 14:12:46 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
3549 Просмотров
Последний ответ Ноябрь 15, 2009, 15:01:16
от Suppir
15 Ответов
7134 Просмотров
Последний ответ Январь 18, 2010, 15:58:18
от CreatoR
3 Ответов
4848 Просмотров
Последний ответ Октябрь 22, 2011, 00:06:15
от Yashied
1 Ответов
2629 Просмотров
Последний ответ Август 13, 2013, 11:09:23
от Garrett
6 Ответов
5226 Просмотров
Последний ответ Сентябрь 06, 2013, 01:05:42
от InnI
8 Ответов
2465 Просмотров
Последний ответ Июль 30, 2014, 13:17:47
от madmasles
4 Ответов
2777 Просмотров
Последний ответ Ноябрь 16, 2014, 01:02:03
от joiner
3 Ответов
1620 Просмотров
Последний ответ Февраль 04, 2016, 11:55:32
от Alofa
2 Ответов
454 Просмотров
Последний ответ Октябрь 01, 2018, 14:29:24
от vova-n
4 Ответов
619 Просмотров
Последний ответ Октябрь 14, 2018, 12:06:49
от Tempo