#include <GuiConstantsEx.au3> #include <EditConstants.au3> #include <UpDownConstants.au3> Global $hours, $minuts, $secunds, $metka_Ok_button=true ;Создание окна $hGUI = GUICreate("Test Script", 300, 100) $Ok_Button = GUICtrlCreateButton("Задать", 215, 40, 60, 20) ;Создание ввода для часов $Input = GUICtrlCreateInput("00", 20, 40, 60, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL,$ES_NUMBER,$ES_READONLY)) $UpDown = GUICtrlCreateUpdown($Input, BitOR($UDS_NOTHOUSANDS, $UDS_ARROWKEYS,$UDS_WRAP)) GUICtrlSetLimit(-1, 100, 0) ;Создание ввода для минут $Input2 = GUICtrlCreateInput("00", 85, 40, 60, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL,$ES_NUMBER,$ES_READONLY)) $UpDown2 = GUICtrlCreateUpdown($Input2, BitOR($UDS_NOTHOUSANDS, $UDS_ARROWKEYS,$UDS_WRAP)) GUICtrlSetLimit(-1, 59, 0) ;Создание ввода для секунд $Input3 = GUICtrlCreateInput(10, 150, 40, 60, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL,$ES_NUMBER,$ES_READONLY)) $UpDown3 = GUICtrlCreateUpdown($Input3, BitOR($UDS_NOTHOUSANDS, $UDS_ARROWKEYS,$UDS_WRAP)) GUICtrlSetLimit(-1, 59, 0) ;Создание метки таймера $Label = GUICtrlCreateLabel("00:00:00", 115, 70, 80, 20) GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x000080) ;Установка белого фона в инпуты GUICtrlSetBkColor($Input, 0xFFFFFF) GUICtrlSetBkColor($Input2, 0xFFFFFF) GUICtrlSetBkColor($Input3, 0xFFFFFF) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $UpDown $hours=GuictrlRead($Input) $minuts=GuictrlRead($Input2) $secunds=GuictrlRead($Input3) GUICtrlSetData($Input, StringFormat("%02i", $hours)) GUICtrlSetData($Label, StringFormat("%02i:%02i:%02i", $hours,$minuts,$secunds)) Case $UpDown2 $hours=GuictrlRead($Input) $minuts=GuictrlRead($Input2) $secunds=GuictrlRead($Input3) GUICtrlSetData($Input2, StringFormat("%02i", $minuts)) GUICtrlSetData($Label, StringFormat("%02i:%02i:%02i", $hours,$minuts,$secunds)) Case $UpDown3 $hours=GuictrlRead($Input) $minuts=GuictrlRead($Input2) $secunds=GuictrlRead($Input3) GUICtrlSetData($Input3, StringFormat("%02i", $secunds)) GUICtrlSetData($Label, StringFormat("%02i:%02i:%02i", $hours,$minuts,$secunds)) Case $Ok_Button if $metka_Ok_button=true then $hours=GuictrlRead($Input) $minuts=GuictrlRead($Input2) $secunds=GuictrlRead($Input3) $metka_Ok_button=false GUICtrlSetData($Ok_Button,"Отмена") AdlibEnable("_TimerCount", 1000) else $metka_Ok_button=true GUICtrlSetData($Ok_Button,"Задать") AdlibDisable() endif EndSwitch WEnd Func _TimerCount() $secunds -= 1 GUICtrlSetData($Label, StringFormat("%02i:%02i:%02i", $hours,$minuts,$secunds)) If $secunds = 0 Then Switch $minuts case 0 if $hours >=1 then $hours-=1 $minuts=59 $secunds=60 else if $hours =0 then AdlibDisable() _MyFunc() endif endif case else $minuts-=1 $secunds=60 EndSwitch EndIf EndFunc Func _MyFunc() $metka_Ok_button=true GUICtrlSetData($Ok_Button,"Задать") MsgBox(0, "Внимание", "Закончиля отсчет, Сейчас компьютер мог выключится если бы на месте этого сообщения была какая то команда.") EndFunc |