Старожил
Сообщения: 307
Благодарности: 137
|
Профиль
|
Отправить PM
| Цитировать
Вот, только в качестве наводки на путь размышления этот пример. Он не полностью рабочий, ибо нужно еще реализовать форматирование время при сложении (например если сложить @HOUR+1, а @HOUR будет равно 23 часам, то выйдет 24, а нам нужно ведь 00!, если @HOUR будет 01 и мы прибавим @HOUR+1, то выйдет 2, а нужно 02!, тоже и с минутами...) Но может это и сам сможеш сделать...с помощью функции StringFormat и еще чего-то...
Код: 
#include <GuiConstants.au3>
Global $nowtime
Global $komanda1=(@HOUR&":"&@MIN-1) ;в переменной будет хранится следующий запуск "первых двух программ"
Global $komanda2=(@HOUR&":"&@MIN-1)
Global $Intervalkomanda2="10"; в переменной будет хранится интервал, по истечении которого запустится вторая прога.
$Gui=GUICreate("Form", 343, 94, 307, 195)
GUICtrlCreateLabel(" Текущее время:", 8, 0, 90, 17)
$Time_Label=GUICtrlCreateLabel("00:00:00", 104, 0, 50, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlCreateLabel(" Следующий запуск (формат записи 00:00):", 0, 16, 224, 17)
$timeDate = GUICtrlCreateLabel("00:00", 232, 16, 46, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
$InputVremya_nachala = GUICtrlCreateInput($komanda1, 280, 8, 57, 21)
GUICtrlCreateLabel(" Интервал после выполнения первых прог (от 1 до 59):", 0, 40, 282, 17)
$Inputinterval=GUICtrlCreateInput("10", 280, 32, 57, 21)
$Ok_but = GUICtrlCreateButton("Применить и свернуть в панель задач", 0, 64, 337, 25, 0)
GUISetState(@SW_SHOW,$Gui)
AdlibEnable("Set_System_Time", 1000)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
AdlibDisable()
Exit
Case $Ok_but
$komanda1=GUICtrlRead($InputVremya_nachala ) ;записываем новое значение следующего запуска "первых двух прог"
Guictrlsetdata($timeDate,$komanda1)
$Intervalkomanda2=GUICtrlRead($Inputinterval ) ;записываем новое значение интервала
GUISetState(@SW_MINIMIZE,$Gui)
EndSwitch
If $komanda1 == $nowtime Then
$komanda1=@Hour+1&":"&@MIN
Guictrlsetdata($timeDate,$komanda1)
MsgBox(0,"1","Время для первых 2 команд") ;тут запуск "пары команд"
$komanda2=@HOUR&":"&@MIN+$Intervalkomanda2
endif
if $komanda2==$nowtime Then
MsgBox(0,"2","Пришлоо время для выполнения последней команды") ;тут запус остальной команды
endif
WEnd
;
Func Set_System_Time()
$nowtime=@HOUR&":"&@MIN
Guictrlsetdata($Time_Label, $nowtime&":"&@SEC)
EndFunc
|