1

Тема: AHK: Таймер с паузой.

Здравствуйте! Как можно сделать таймер с паузой? Через Sleep не получается, тогда может через loop? Я просто не уверен, что в loop всё будет правильно с таймингами. Заранее спасибо.

2

Re: AHK: Таймер с паузой.

i := 0
F1::SetTimer Action, -1
F2::Pause
Esc::ExitApp

Action:
	ToolTip % ++i
	Sleep 500
	SetTimer Action, -1
Return

3 (изменено: danyalukashak, 2018-04-05 19:22:13)

Re: AHK: Таймер с паузой.

stealzy, я поставил вместо 500 - 1000, что-бы было по секундам,но вроде-бы там время немного запаздывает. Нужно поставить 998? Или мне просто кажется, что оно опаздывает? Или когда я нажимаю NumPad3, то Action перестаёт на эту секунду работать?

NumPad1::SetTimer Action, -1
NumPad2::Pause
NumPad3::
  tooltip %i%
  sleep 1000 
  tooltip
return
NumPad9::ExitApp

Action:
  ++i
  Sleep 1000	
  if i<7200
    SetTimer Action, -1
  if i=7200
   {
    MsgBox, Время вышло
    i:=0
   }
Return

4

Re: AHK: Таймер с паузой.

Все верно, см. SetBatchLines. Даже если установить в -1, команды занимают некое время.
Я не очень понимаю, что значит "таймер с паузой". Почему бы просто не отключать таймер, а потом включать снова?

5

Re: AHK: Таймер с паузой.

stealzy, имеется в виду, что таймер идёт и когда остаётся допустим 10 минут, то я могу поставить на паузу и отойти, а когда приду, убрать паузу и он продолжит работать с 10 минут. А есть обход задержки команд? Или нету?

6 (изменено: MandarinKa02, 2018-04-06 18:56:12)

Re: AHK: Таймер с паузой.

+ timer

#Persistent
main()
return


main() {
	global i:=0
	Timer("start")
}

Timer(func) {
	global i
	if(func="start") {
		SetTimer, _timer, 1000
	} else if(func="pause") {
		SetTimer, _timer, Off
	} else if(func="reset") {
		i:=0
		MsgBox, Время вышло
		SetTimer, _timer, Delete
	}
}



_tooltip:
{
	SetTimer, _tooltip,Delete
	Tooltip("hide")
	return
}

Tooltip(func) {
	global i
	if(func="Show") {
		tooltip % i
		SetTimer, _tooltip, 1000
	} else if(func="hide") {
		tooltip
	}
}

NumPad1::Timer("start")
NumPad2::Timer("pause")
NumPad3::Tooltip("show")
NumPad9::ExitApp
F5::Reload



_timer:
++i
if(i=15) { ;in sec
	Timer("reset")
} return

7

Re: AHK: Таймер с паузой.

stealzy, не совсем понял. В скрипте danyalukashak, действия по нажатию NumPad3 перебивают таймер. Я же сделал скрипт в котором такого не происходит.

8

Re: AHK: Таймер с паузой.

MandarinKa02, да в вашем скрипте всё прекрасно работает. Спасибо. И задержок
вроде-бы нету.