Добрый день.
Задача передо мной стоит такая. Нужно написать скрипт, последовательно переключающий дату на компьютере.
Есть найденный на этом форуме скрипт, меняющий дату компа и откатывающий ее обратно.
Код:
Хотелось бы получить возможность задать две даты(начало и конец). После чего должен запускаться цикл +1 день с определенной задержкой. ПОсле совпадения дат - цикл должен завершаться и возвращаться должна текущая дата.
К сожалению, навыки использования AUTOIT у меня отсутствуют, а разобраться хотелось бы. Меня хватило только на рисование алгоритмов, как должно работать, но как это реализовать - :stars:
Пример работы, как я его вижу:
1) гуевое окошко с двумя выкидными календарями(см. приведенный скрипт) - старт.дата и конечная дата.
2) после задания дат - запускаем нажатием кнопки
3) скрипт "запоминает" текущую дату
4) скрипт ставит дату компа равной стартовой дате.
5) задержка х секунд
6) проверка условия выхода из цикла (Если СтартоваяДата> или = Конечная Дата - цикл завершается, возвращается текущая дата.
7) ЕСЛИ СтартоваяДата< Конечная Дата ТО:
значение даты компа ставится СтартоваяДата+1 день
Цикл повторяется до условия выхода.
Буду очень благодарен любой посильной помощи.
Задача передо мной стоит такая. Нужно написать скрипт, последовательно переключающий дату на компьютере.
Есть найденный на этом форуме скрипт, меняющий дату компа и откатывающий ее обратно.
Код:
Код:
#include <GUIConstantsEx.au3>
#include <Date.au3>
Global $sYEAR = @YEAR, $sMON = @MON, $sMDAY = @MDAY, $fChange, _
$iStart = TimerInit()
GUICreate('Test', 500, 500)
$nDate = GUICtrlCreateDate('', 8, 45, 194, 21)
$nLabel = GUICtrlCreateLabel('Текущая дата (' & @MDAY & '.' & @MON & '.' & @YEAR & _
'), вы можете ' & @CRLF & ' поменять. Выберите нужную дату:', 8, 8, 374, 35)
$nButton1 = GUICtrlCreateButton('Поменять', 20, 72, 75, 25)
$nButton2 = GUICtrlCreateButton('Отмена', 110, 72, 75, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
If $fChange Then
If MsgBox(33, 'Question', 'Вернуть начальную дату?') = 1 Then
_Date_Back()
EndIf
EndIf
Exit
Case $nButton1
$aDate = StringSplit(GUICtrlRead($nDate), '.')
If $aDate[0] <> 3 Then ContinueLoop
_SetDate($aDate[1], $aDate[2], $aDate[3])
$fChange = True
GUICtrlSetState($nButton2, $GUI_ENABLE)
GUICtrlSetData($nLabel, 'Текущая дата (' & @MDAY & '.' & @MON & '.' & @YEAR & _
'), вы можете ' & @CRLF & ' поменять. Выберите нужную дату:')
Case $nButton2
_Date_Back()
GUICtrlSetData($nLabel, 'Текущая дата (' & @MDAY & '.' & @MON & '.' & @YEAR & _
'), вы можете ' & @CRLF & ' поменять. Выберите нужную дату:')
GUICtrlSetData($nDate, '')
EndSwitch
WEnd
Func _Date_Back()
Local $s_Date_Back, $a_Split, $i_Diff = Round(TimerDiff($iStart) / 1000)
$s_Date_Back = _DateAdd('s', $i_Diff, $sYEAR & '/' & $sMON & '/' & $sMDAY)
$a_Split = StringSplit($s_Date_Back, '/')
If $a_Split[0] = 3 Then
_SetDate($a_Split[3], $a_Split[2], $a_Split[1])
$fChange = False
EndIf
EndFunc ;==>_Date_Back
Хотелось бы получить возможность задать две даты(начало и конец). После чего должен запускаться цикл +1 день с определенной задержкой. ПОсле совпадения дат - цикл должен завершаться и возвращаться должна текущая дата.
К сожалению, навыки использования AUTOIT у меня отсутствуют, а разобраться хотелось бы. Меня хватило только на рисование алгоритмов, как должно работать, но как это реализовать - :stars:
Пример работы, как я его вижу:
1) гуевое окошко с двумя выкидными календарями(см. приведенный скрипт) - старт.дата и конечная дата.
2) после задания дат - запускаем нажатием кнопки
3) скрипт "запоминает" текущую дату
4) скрипт ставит дату компа равной стартовой дате.
5) задержка х секунд
6) проверка условия выхода из цикла (Если СтартоваяДата> или = Конечная Дата - цикл завершается, возвращается текущая дата.
7) ЕСЛИ СтартоваяДата< Конечная Дата ТО:
значение даты компа ставится СтартоваяДата+1 день
Цикл повторяется до условия выхода.
Буду очень благодарен любой посильной помощи.