Тема: Выполнение действия каждый час
Я написал скриптик с оповещением,пожалуйста пришлите как сделать так что бы каждый час срабатывал)
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Я написал скриптик с оповещением,пожалуйста пришлите как сделать так что бы каждый час срабатывал)
Срабатывал по времени именно а не по задержке.
Была похожая тема.
Я не стал оптимизировать код под задачу, поэтому помимо ежечасного срабатывания можно добавить ещё свои точки.
EveryHour = 00:00 ; минута и секунда каждого часа
Times := []
; Times.Push("17:18") ; добавить своё время, можно с секундами
_Time := SubStr(A_Now, 1, -4) StrReplace(EveryHour, ":")
; _Time := A_Now ; если нужно начиная с текущего времени
Loop 24
{
_Time += 1, hour ; hour min sec
Times.Push(RegExReplace(_Time,"\d{8}(\d{2})(\d{2})(\d{2})", "$1:$2:$3"))
}
TaskTimer(Times) ; Запуск отсчёта, кргда придёт время будет вызвана OnTimer
Return
OnTimer(Time) {
MsgBox, , , % Time, 1
}
TaskTimer(Arr) {
Min := MinTime(Arr, Time)
SetTimer(Func("Mediator").Bind(Time, Arr), -Min)
TrayTip, % "Следующий в:", % Time "`n`nЧерез: " FormatTime(Min)
}
MinTime(Arr, byref Time) {
For k, value in Arr
odds := DifferenceTime(value)
, (!Min || Min > odds)
&& (Min := odds, Time := value)
Return Min
}
Mediator(Time, Arr) {
SetTimer(Func("TaskTimer").Bind(Arr), -100)
SetTimer(Func("OnTimer").Bind(Time), -1)
}
DifferenceTime(Time) {
T := StrSplit(Time, ":")
Time := Time2 := A_YYYY A_MM A_DD T[1] T[2] (T[3] ? T[3] : "00")
EnvSub, Time, A_Now, Second
Time := (Time * 1000) - A_MSec
If Time >= 0
Return Time
Time2 += 1, days
EnvSub, Time2, A_Now, Second
Return (Time2 * 1000) - A_MSec
}
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
}
SetTimer(func, time) {
SetTimer, % func, % time
}
Узнать когда сработает.
1:: MsgBox % "До следующего осталось: "
. FormatTime(MinTime(Times, Time))
. "`n`n" "Сработает в: " Time
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться