1

Тема: AHK: ToolTip Обратный отсчет в секундах

Есть некоторый кусок кода, где включается долгий таймер, и что бы видеть как идет процесс хочу вывести тултип с обратным отсчетом в секундах или минутах.


Loop
{
    Random, rand, 10000, 30000
    ControlSend, , {CtrlDown}{ShiftDown}u{CtrlUp}{ShiftUp}, ahk_pid %p_id%
    rand1:= rand/1000/60
    TrayTip, Время, %rand1% Minut, 2, info
    settimer time, 1000    ; запускаем таймер для отображения время паузы шаг в 1000 мс. (1сек)
	time:=a_tickcount
    Sleep, %rand%
}
return

time:
    tooltip % a_tickcount  - time " s", 1, 1 ; отображает тултип с шагом в 1000 мс. И это не отсчет=(
    return

Крутил, вертел. Придумать нечто с формулой, у меня не получилось. Для начала я бы хотел понять как в тултипе отображать секунды\минуты.
Ну и на последок, как сделать обратный отсчет? Что бы тултип шел со значениями на убывание (30...29...28...27)? Поиск ничего толкового не дал.

2

Re: AHK: ToolTip Обратный отсчет в секундах

Дели на 1000. Округляй до целых. Получишь в секундах. Дели на 60, бери целую часть получишь минуты.  И т.д.

3

Re: AHK: ToolTip Обратный отсчет в секундах

Тема периодически поднимается, тут сложнее задать секундный таймер так, чтобы секунды отображались без "проскальзываний".


#SingleInstance Force
#NoEnv
SetBatchLines -1

Start := A_TickCount
MSecStart := A_MSec
Duration := 10000

TimeUpdate:
	Time := FormatTime(Duration - (A_TickCount - Start) + 100)
	If (Duration - (A_TickCount - Start) - 100 <= 0)
		MsgBox % "Прошло: " FormatTime(Duration)
	Else
	{
		ToolTip % Time
		SetTimer, TimeUpdate, % "-" (1000 - A_MSec + MSecStart)
	}
	Return 

FormatTime(Time)  {
	Rest := Mod(Time, 3600000)
	Hours := Format("{:02}", Time // 3600000)
	Min := Format("{:02}", Rest // 60000)
	Sec := Format("{:02}", Mod(Rest, 60000) // 1000)
	; MSec := Format("{:03}", Mod(Rest, 1000)) 
	Return Hours ":" Min ":" Sec  ; "," MSec
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4 (изменено: DaVinchi, 2016-07-25 13:32:33)

Re: AHK: ToolTip Обратный отсчет в секундах

Foma Ну я почему то и не сомневался, что мне нужно заниматься делением. Только вот в коде ничего н выходит. Тултип пустой получается.
serzh82saratov Занятный код, но вот применить его к своему коду я не сумел.
upd. В принципе реализовал вот так:

 time1 := (a_tickcount - time) // 1000
    time2 := (a_tickcount - time) // 60000
    if time1 < 60
    {
    tooltip % time1 " s", 1, 1
    }
    else
    {
    tooltip % time2 " m " time1 " s", 1, 1
    }
    return

 
Получилось почти то, что нужно. Только когда начинают капать минуты, то секунды не обнуляются каждые 60 секунд. Они тупо идут до конца цикла приобретая вид 120сек, 140сек, 359сек и т.п.. Как сделать так, что бы секунды за 59 не переваливали?