я пользуюсь для таких вещей двумя способами,
первый это рассчитать время задержки, sleep,%var1% где var1= минуты*60000+секунды*1000 (но это может быть не удобно по причине, что скрипт ждет а не работает)
а второй вариант вот:
; время когда нужно запустить некое действие
needTime=00:36:00
;извлечем из него двоеточие
StringReplace, needTime, needTime, : ,,A
;получим текущую дату без времени
StringLeft, NeedTimeStamp, A_NOW, 8
;итоговый штамп когда нужно выполнить действие
NeedTimeStamp=%NeedTimeStamp%%needtime%
;Получим разницу между сейчас и нужным временем в эту переменную в секундах
var1:=A_NOW
EnvSub,var1,%NeedTimeStamp%,seconds
;если результат >0 то это количество секунд, которые прошли с момента как нам надо было запустить действие
msgBox,%var1%
if var1>0
SoundBeep, 100, 500
Кстати, раз уж поправил пост. Заметил еще одну странность:
К указанной дате добавляется 10 секунд.
mytime=20110511210600
EnvAdd,mytime,10,seconds
msgbox,%mytime%
А вот аналогичное отнимание 10секунд не работает.
mytime=20110511210600
EnvSub,mytime,10,seconds
msgbox,%mytime%
Что не так? кто-то знает ?
Порылся я на англоязычном форуме и накопал след. сообщение:
http://www.autohotkey.com/forum/topic69 … ght=envsub
Так что может кому-то пригодится, но можно сделать так (Тогда получится вычитание).
а то что не работает EnvSub видимо баг...
mytime=20110511210600
EnvAdd,mytime,-10,seconds
msgbox,%mytime%
А если вам надо запускать программы по расписанию, не из скрипта, то советую очень хорошую бесплатную
программку xStarter http://www.xstarter.com
Я все свои скрипты запускаю именно из нее.