A
at
Гость
День добрый, Всем! Прошу подсказать, как правильно реализовать автоматическое повторение функции в назначенное время. Например, мне нужен вызов функции в 10 минут каждого часа. В моем примере на секундах я показал, как это реализовано у меня, но очень терзают сомнения потому, что в другом моем скрипте автоматика по этому принципу не работает.
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$_Form_1 = GUICreate("", 468, 165, 261, 78)
$_Group_Download = GUICtrlCreateGroup("Управление скриптом", 8, 8, 449, 145)
$_Checkbox_Automatics = GUICtrlCreateCheckbox("Автоматический режим", 17, 35, 204, 17)
$_Button_1 = GUICtrlCreateButton("Показать сообщение", 313, 115, 131, 25)
$_Input_MIN = GUICtrlCreateInput("00", 248, 51, 25, 21)
$Label1 = GUICtrlCreateLabel("Ручной режим", 336, 96, 76, 17)
$Label2 = GUICtrlCreateLabel("Показывать сообщение каждую минуту в :", 16, 56, 225, 17)
$Label3 = GUICtrlCreateLabel("секунд", 280, 56, 39, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $_Automatics = '0' ; Переменная автоматики, по умолчанию пустой чекбокс
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
; ======================================================================================================================================== РУЧНОЙ РЕЖИМ ===
Case $_Button_1 ; Запуск загрузки в ручном режиме
_TrayTip_Test_Hands()
Sleep (1000)
; ========================================================================================================================================= АВТОМАТИКА ===
Case $_Automatics = BitAND(GUICtrlRead($_Checkbox_Automatics), $GUI_CHECKED) ; Устанавливаем положение Checkbox - Автоматический режим = '1'
If @SEC = Number(GUICtrlRead($_Input_MIN)) Then ; Если секунды текущего времени будут = "$_Input_MIN", то
_TrayTip_Test_Automatics()
Sleep (1000)
; Например: В 16:00:00 мы выставили секунды = 15, значит автоматика сработает в 16:00:15, далее в 16:01:15 и т.д.)
EndIf
EndSwitch
WEnd
Func _TrayTip_Test_Hands()
TrayTip('ИНФОРМАЦИЯ','Ручной режим в ' & @HOUR & ':' & @MIN & ':' & @SEC, 0)
EndFunc
Func _TrayTip_Test_Automatics()
TrayTip('ИНФОРМАЦИЯ','Автоматический режим в ' & @HOUR & ':' & @MIN & ':' & @SEC, 0)
EndFunc