Что нового

[Автоматизация] Вызов функции каждые {Х} минут

palub

Новичок
Сообщения
32
Репутация
3
Собственно вопрос. Каким образом реализовать такую штуку, чтобы: если отмечен чекбокс, то каждые 5 минут выполнялась определенная функция ?
Для примера скрипт:
Код:
#include <GUIConstants.au3>
$Form1 = GUICreate("Form1", 247, 66, 193, 125)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 32, 16, 169, 25)
GUISetState(@SW_SHOW)
Func func_1()
If GUICtrlRead($Checkbox1 ) = $GUI_CHECKED Then
	AdlibRegister("func_2", 500)
	EndIf
EndFunc
Func func_2()
send(1)
EndFunc
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
Но почему - то работать наотрез не хочет. Подскажите как это реализовать пожалуйста :(
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
функция func_1() в вашем скрипте нигде не вызывается. Тот факт что она стоит в начале еще ничего не значит, интерпретатор сам никогда не выполнят то, что в фукнциях.
Вам нужно вызывать ее явно, либо удалить функцию
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
palub

Можно так:
Код:
#include <GUIConstantsEx.au3>

$Form1 = GUICreate("Form1", 247, 66, 193, 125)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 32, 16, 169, 25)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Checkbox1
			If GUICtrlRead($Checkbox1) = 1 Then
				AdlibRegister("func_2", 500)  
			Else
				AdlibUnRegister("func_2")
			EndIf
	EndSwitch
WEnd

Func func_2()
	; send('1') ; действия
	MsgBox(0, 'Заголовок', "Сообщение")	
EndFunc   ;==>func_2
 
Верх