1 (изменено: dimkacum, 2021-05-23 14:36:17)

Тема: AHK: Привязка скрипта ко времени OC Windows

Здравствуйте можно ли привязать скрипт ко времени OC Windows?
Если да то каким образом это можно реализовать?
Мне просто нужно чтоб не зависимости от времени если на часах будет 45 минут, то он должен делать какое то действие.
Код который находится ниже увидел у вас на форуме но не могу понять как он работает.


#SingleInstance Force
#Persistent
#NoEnv

Times := ["01:00","00:59:50"] 
NewTimer(Times)
Return

NewTimer(Arr)  {
	For k, value in Arr
		odds := DifferenceTime(value)
		, (!Min || Min > odds) 
		&& (Min := odds, Time := value) 
	hFunc := Func("Timer").Bind(Time, Arr)
	SetTimer, % hFunc, % -Min
	TrayTip, % "Следующий в:", % "`n" Time "`n`nЧерез:`n`n" FormatTime(Min) 
}

Timer(Time, List)  {
	MsgBox, , , % Time, 1
	NewTimer(List)
}

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
}

2

Re: AHK: Привязка скрипта ко времени OC Windows

Loop
{
If A_Min = 45
	{
	Tooltip, Сейчас 45 минут!
	Sleep, 1000
	Tooltip
	}
Else Sleep, 1000
}

3 (изменено: Foma, 2021-05-23 15:56:04)

Re: AHK: Привязка скрипта ко времени OC Windows

Ну, тут бы ещё защиту от повторного срабатывания. А то он будет мигать почти минуту. Вот так будет 4 секунды сигнализировать.

Loop
	{
	If A_Min = 45
	If (A_Sec < 5)
		{
		Tooltip, Сейчас 45 минут!
		Sleep, 1000
		Tooltip
		}
	Sleep, 20
	}