Задался вопросом, можно ли добиться срабатывание нескольких таймеров.
пример взял из завалявшегося скриптика clickermann
и уже который день бьюсь, не пойму как реализовать:
подскажите пожалуйста :stars: :-\
запутался я :-X :-[
....и еще, если моя задача по силам AutoIt-у, нужно ли это записывать отдельной фукцией, чтоб потом подключать в другом скрипте?
пример взял из завалявшегося скриптика clickermann
Код:
;--- Код: Clickermann ---// Эти строки выполняются при запуске 1 раз
$time1 = INT(STRCONCAT ("0", INIREAD ("time.ini", "Time1", "TIME")))
$time2 = INT(STRCONCAT ("0", INIREAD ("time.ini", "Time2", "TIME")))
$time3 = INT(STRCONCAT ("0", INIREAD ("time.ini", "Time3", "TIME")))
go:
IF($time1 < $_time_t)
$time1 = $_time_t + 30 ; // выполняется каждые 30 сек
INIWRITE ("time.ini", "Time1", $time1, "TIME"); // запись в файл time.ini времени следующего срабатывания условия
END_IF
IF($time2 < $_time_t)
$time2 = $_time_t + 60 ; //...60 сек
INIWRITE ("time.ini", "Time2", $time2, "TIME"); // Здесь пишутся необходимые действия
END_IF
IF($time3 < $_time_t)
$time3 = $_time_t + 120 ; //...2 минуты
INIWRITE ("time.ini", "Time3", $time3, "TIME"); // Здесь пишутся необходимые действия
END_IF
WAITMS (500)
goto(go) ; // переход к метке GO
Код:
#include <Date.au3>
HotKeySet('{Esc}','_quit')
Global $_time_t = _TimeToTicks(@HOUR,@MIN,@SEC)
Global $Sec, $Min, $Hour, $Time
Global $time1, $time2, $time3
Func _quit()
Exit
EndFunc
Func _WrTimer()
$file = FileOpen('times.txt',2)
If $time1 < $_time_t Then
$time1 = $_time_t + 3000
FileWriteLine($file, $time1 & @CRLF)
EndIf
If $time2 < $_time_t Then
$time2 = $_time_t + 6000
FileWriteLine($file, $time2 & @CRLF)
EndIf
If $time3 < $_time_t Then
$time3 = $_time_t + 1000
FileWriteLine($file, $time3)
FileClose($file)
EndIf
EndFunc
Func _ReadTimer()
$file = FileOpen('times.txt',0)
$time1 = FileReadLine($file,1)
$time2 = FileReadLine($file,2)
$time3 = FileReadLine($file,3)
FileClose($file)
EndFunc
_WrTimer()
While 1
$_time_t = _TimeToTicks(@HOUR,@MIN,@SEC)
;_ReadTimer()
;$_time_t = $time1
;If Not @error Then
; Beep(500,500)
MsgBox(0,$_time_t,$time1 & @CRLF & $time2 & @CRLF & $time3) ; здесь выводится как надо
;Else
; MsgBox(0,'error','1')
Sleep(1000)
;EndIf
;
;$_time_t = $time2
;If Not @error Then
; Beep(500,1000)
;Else
; MsgBox(0,'error','2')
;
;$_time_t = $time3
;If Not @error Then
; Beep(500,1500)
;Else
; MsgBox(0,'error','3')
WEnd
запутался я :-X :-[
....и еще, если моя задача по силам AutoIt-у, нужно ли это записывать отдельной фукцией, чтоб потом подключать в другом скрипте?