#include <Timers.au3>
$iSleep = 20000
$iStart = TimerInit()
$iTimer = _Timer_SetTimer(0, 1000, '_Update')
Sleep($iSleep)
ConsoleWrite(TimerDiff($iStart) & @LF)
_Timer_KillTimer(0, $iTimer)
Func _Update($hWnd, $Msg, $iIDTimer, $dwTime)
ToolTip(_Time_From_Ticks($iSleep - TimerDiff($iStart)), 0, 0)
EndFunc ;==>_Update
Func _Time_From_Ticks($i_Ticks)
Local $i_Hours, $i_Mins, $i_Secs, $s_Format = '%02d:%02d'
$i_Ticks = Abs(Int($i_Ticks))
$i_Ticks = Int($i_Ticks / 1000)
$i_Hours = Int($i_Ticks / 3600)
$i_Ticks = Mod($i_Ticks, 3600)
$i_Mins = Int($i_Ticks / 60)
$i_Secs = Mod($i_Ticks, 60)
If $i_Hours Then
Return StringFormat($s_Format & ':%02d', $i_Hours, $i_Mins, $i_Secs)
Else
Return StringFormat($s_Format, $i_Mins, $i_Secs)
EndIf
EndFunc ;==>_Time_From_Ticks