1 (изменено: Indomito, 2012-04-21 00:00:25)

Тема: AHK: Как выключить таймер

Прошу прощения за столь глупый вопрос, но я явно что то глобально не понимаю или допустил грубую ошибку в скрипте

fBlock := false
0::
fBlock := !fBlock
 if (fBlock)
    {
     SetTimer, BlockY, 10, On
     }
  else
    SetTimer, BlockY, 10, Off   
return

BlockY:
ToolTip, %fBlock%
return

После первого нажатия на "0"(ноль) подпрограмма BlockY начинает работу и выводит на экран то 0-false, то 1-true т.е. по нажатию на клавишу, но работу свою не прекращает.

Где я ошибся?

Вот упрощённый вариант, но результат тот же, счётчик не останавливается

fBlock := 0
0::
SetTimer, BlockY, 10, On
sleep 100
SetTimer, BlockY, 10, Off
return

BlockY:
ToolTip, %fBlock%
fBlock++
return

Или же On|Off это просто перенаправленные потоки внутри AHK?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

2

Re: AHK: Как выключить таймер

Да... дописался Всё "проблему" решил LOL

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

3

Re: AHK: Как выключить таймер

0::SetTimer, BlockY, % (fBlock:=!fBlock) ? 10:"Off", Counter:=False

BlockY:
   ++Counter
   ToolTip, % Counter
   Return

4

Re: AHK: Как выключить таймер

Да, я понял, просто я разделил в разные параметры период и статус, а надо число|On|Off это же одно поле - описался и стал копать глубже, а была просто ошибка в синтаксисе.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro