Старожил
Сообщения: 307
Благодарности: 137
|
Профиль
|
Отправить PM
| Цитировать
Цитата sashadeg:
А хорошо бы сделать, ещё GUI которое будет показывать, сколько раз программа повторилась, и дату первого запуска... »
|
Вот, кажись должно полностью работать:
Код:
#include <GuiConstants.au3>
Global $nowtime
Global $Time_kom1=(@HOUR&":00") ;в переменной будет хранится следующий запуск "первых двух программ"
Global $Time_kom2=(@HOUR&":00")
Global $Intervalkomanda2="10"; в переменной будет хранится интервал, по истечении которого запустится вторая прога.
Global $Count="0"
$Gui=GUICreate("Планировщик", 343, 150, 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($Time_kom1, 280, 8, 57, 21)
GUICtrlCreateLabel(" Интервал после выполнения первых прог (от 1 до 59):", 0, 40, 282, 17)
$Inputinterval=GUICtrlCreateInput("10", 280, 32, 57, 21)
GUICtrlCreateLabel(" Счетчик, сколько раз уже был запуск:", 0, 65, 280, 17)
$CountLabel = GUICtrlCreateLabel("0", 232, 65, 46, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlCreateLabel(" Дата запуска:", 0, 95, 280, 17)
GUICtrlCreateLabel(@MDAY&"\"&@MON&"\"&@YEAR, 232, 95, 76, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x0000FF)
$Ok_but = GUICtrlCreateButton("Применить и свернуть в панель задач", 0, 120, 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
$Time_kom1=GUICtrlRead($InputVremya_nachala ) ;записываем новое значение следующего запуска "первых двух прог"
Guictrlsetdata($timeDate,$Time_kom1) ;запись следующего запуска
$Intervalkomanda2=GUICtrlRead($Inputinterval ) ;записываем новое значение интервала
GUISetState(@SW_MINIMIZE,$Gui)
EndSwitch
If $Time_kom1 == $nowtime Then
Guictrlsetdata($CountLabel,$Count+1); пишем в счетчик запусков
$Hour=@Hour+1
Switch $Hour
Case "24"
$Hour="00"
case 1 To 9
$Hour="0"&$Hour
endswitch
$Time_kom1=$Hour&":"&@MIN
Guictrlsetdata($timeDate,$Time_kom1) ;запись следующего запуска
MsgBox(0,"1","Время для первых 2 команд") ;тут запуск "пары команд"
$Min=@MIN+$Intervalkomanda2
$Hour=@HOUR
if $Min>60 then
$Min=$Min-60
$Hour=@HOUR+1
Switch $Hour
Case "24"
$Hour="00"
case 1 To 9
$Hour="0"&$Hour
endswitch
endif
if $Min>0 and $Min<10 then $Min="0"&$Min
$Time_kom2=$Hour&":"&$Min
Guictrlsetdata($Inputinterval,$Time_kom2) ;только для того чтобы убедится что запуск "проги 2" будет в нужное время (а так ненужно)
endif
if $Time_kom2==$nowtime Then
MsgBox(0,"2","Пришлоо время для выполнения последней команды") ;тут запус остальной команды
$Time_kom2="11111111" ;это нужно для того, чтобы если "прога2" будет выполнятся меньше 1 минуты, то небыло ее повторного запуска
endif
WEnd
;
Func Set_System_Time()
$nowtime=@HOUR&":"&@MIN
Guictrlsetdata($Time_Label, $nowtime&":"&@SEC)
EndFunc
|