Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] остановка функции при условии.

Ответить
Настройки темы
[решено] остановка функции при условии.

Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


в коде вызываем функцию, которая будет работать постоянно(через каждый 3 минуты)

Код: Выделить весь код
 AdlibEnable("Timetosleep",180000)
в этой функции есть переменная. например

Код: Выделить весь код
global $i=0

func Timetosleep()
$i+=1

endfunc
паралельно это функции в "главном" коде программа выполняется какаято другая функция(не столь важно).

Вопрос: как сделать чтобы при достижении скажем $i=5(через 15минут) мы останавливали функцию в "главном" коде, а при $i=6(спустя три минуты после паузы) снова ее возобновляли.

Отправлено: 17:36, 21-07-2011

 

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Не знаю, правильно ли я понял

!AutoIt Version: 3.3.6.0

Код: Выделить весь код
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $i = 0, $begin = 0
Global $iTimeSleep = 3 * 60 ; 3 Минуты

AdlibRegister('_Timetosleep', 180000)
AdlibRegister('_TrackingTimer', 1000)

$Form1 = GUICreate("", 243, 58, 348, 246, BitOR($WS_CAPTION, $WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS))
$Button1 = GUICtrlCreateButton("Х", 8, 8, 227, 41, 0)
GUISetState()

Do
Until GUIGetMsg() = $Button1

Func _Timetosleep()

    $i += 1
    ConsoleWrite('> ' & $i & @CRLF)
    If $i = 5 Then
        $begin = TimerInit()
        AdlibUnRegister('_Timetosleep')
    EndIf

EndFunc   ;==>_Timetosleep

Func _TrackingTimer()

    If $begin > 0 And Round(TimerDiff($begin) / 1000) > $iTimeSleep Then AdlibRegister('_Timetosleep', 180000)

EndFunc   ;==>_TrackingTimer

Отправлено: 15:14, 24-07-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для yukuru

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


реализация знакома и понятна. вотЪ только вопрос- продолжит ли он с местра разЪединения фнкию, или нанет заново

Отправлено: 07:37, 25-07-2011 | #3


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Малец не правильно написал код ...

Функцию _Timetosleep он продолжит, те глобальная переменная $i будет приращиваться (Остановится на 5 ... после паузы 3 минуты будет 6,7,8 ...)

Код: Выделить весь код
#include <WindowsConstants.au3>

Global $i = 0, $begin = 0, $fTimerOff = False
Global $iTimeSleep = 3 * 60 ; 3 Минуты

AdlibRegister('_Timetosleep', 180000)
AdlibRegister('_TrackingTimer', 500)

$Form1 = GUICreate("", 243, 58, 348, 246, BitOR($WS_CAPTION, $WS_POPUP, $WS_BORDER, $WS_CLIPSIBLINGS))
$Button1 = GUICtrlCreateButton("Х", 8, 8, 227, 41, 0)
GUISetState()

Do
Until GUIGetMsg() = $Button1

Func _Timetosleep()

    $i += 1
    ConsoleWrite('> ' & $i & @CRLF)
    If $i = 5 Then
        $begin = TimerInit()
        AdlibUnRegister('_Timetosleep')
    EndIf

EndFunc   ;==>_Timetosleep

Func _TrackingTimer()

    If $begin > 0 And Round(TimerDiff($begin) / 1000) > $iTimeSleep And Not $fTimerOff Then
        AdlibRegister('_Timetosleep', 180000)
        $fTimerOff = True
    EndIf

EndFunc   ;==>_TrackingTimer
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:01, 26-07-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] остановка функции при условии.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как добавить ключ реестра, при условии что винда не загружается? Blast Microsoft Windows 2000/XP 56 26-01-2013 13:01
Установка - XP согласна ставится при условии выбора по F5 бУРов Microsoft Windows 2000/XP 5 27-01-2010 03:11
XP согласна ставится при условии выбора по F5 бУРов Непонятные проблемы с Железом 10 25-01-2010 18:39
CMD/BAT - [решено] Создание текстового файла при условии его отсутствия в папке spilberg Скриптовые языки администрирования Windows 1 12-07-2009 15:58
Непонятная остановка при установке ХР DRadmin Microsoft Windows 2000/XP 2 04-03-2006 17:08




 
Переход