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

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

Ответить
Настройки темы
Как задать время выполнения функции?

Аватара для Centrinar

Старожил


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

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


Наверное глупый вопрос но в справек не нашел, как задать время для функции с while. т.е. есть функция которая постоянно повторяеться, как задать что бы она работала например 2 сек.

Отправлено: 16:49, 20-07-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата Centrinar:
как задать время для функции с while. т.е. есть функция которая постоянно повторяеться, как задать что бы она работала например 2 сек »
Проверять в цикле таймер (TimerInit/TimerDiff):

Код: Выделить весь код
Loop()

Func Loop()
    $iTimer = TimerInit()

    While 1
        ....

        If TimerDiff($iTimer) >= 2000 Then
            ExitLoop
        EndIf

        ....
    WEnd
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 16:55, 20-07-2010 | #2



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

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


Аватара для Centrinar

Старожил


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

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


Creat0R помоги пожалуйста реализовать этот тут, надо что бы GIF картинка крутилась 2 сек.
Код: Выделить весь код
GUICreate("Embedded Web control Test", 640, 580)

_GUICtrlCreateGif(@SystemDir & "\oobe\html\mouse\images\clicking.gif", 5, 5)
_GUICtrlCreateGif(@WindowsDir & "\pchealth\helpctr\System\images\progbar.gif", 450, 5)
_GUICtrlCreateGif(@SystemDir & "\oobe\images\dialup.gif", 5, 300)

GUISetState()

While GUIGetMsg() <> -3
WEnd

Func _GUICtrlCreateGif($sGifFile, $iLeft, $iTop, $iWidth=-1, $iHeight=-1)
    Local $iSizes, $oIE, $nGUIActiveX

    If ($iWidth = -1 Or $iHeight = -1) And FileGetSize($sGifFile) > 9 Then
        $iSizes = FileRead($sGifFile, 10)

        If $iWidth = -1 Then $iWidth = Asc(StringMid($iSizes, 8, 1)) * 256 + Asc(StringMid($iSizes, 7, 1))
        If $iHeight = -1 Then $iHeight = Asc(StringMid($iSizes, 10, 1)) * 256 + Asc(StringMid($iSizes, 9, 1))
    EndIf

    $oIE = ObjCreate("Shell.Explorer.2")
    $nGUIActiveX = GUICtrlCreateObj($oIE, $iLeft, $iTop, $iWidth, $iHeight)
    $oIE.Navigate("about:blank")

    While $oIE.Busy
        Sleep(1)
    WEnd

    $oIE.Document.Body.Background = $sGifFile
    $oIE.Document.Body.Scroll = "No"

    Return $nGUIActiveX
EndFunc

Отправлено: 17:01, 20-07-2010 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата Centrinar:
надо что бы GIF картинка крутилась 2 сек »
Тут можно только удалять Gif'ки...

Код: Выделить весь код
GUICreate("Embedded Web control Test", 640, 580)

$nGif1 = _GUICtrlCreateGif(@SystemDir & "\oobe\html\mouse\images\clicking.gif", 5, 5, -1, -1)
$nGif2 = _GUICtrlCreateGif(@WindowsDir & "\pchealth\helpctr\System\images\progbar.gif", 450, 5)
$nGif3 = _GUICtrlCreateGif(@SystemDir & "\oobe\images\dialup.gif", 5, 300)

GUISetState()

$iTimer = TimerInit()

While GUIGetMsg() <> -3
    If TimerDiff($iTimer) >= 2000 Then
        GUICtrlDelete($nGif1)
        GUICtrlDelete($nGif2)
        ;GUICtrlDelete($nGif3)
    EndIf
WEnd
А нет, можно и останавливать:

Код: Выделить весь код
GUICreate("Embedded Web control Test", 640, 580)

$aGif1 = _GUICtrlCreateGif(@SystemDir & "\oobe\html\mouse\images\clicking.gif", 5, 5, -1, -1)
$aGif2 = _GUICtrlCreateGif(@WindowsDir & "\pchealth\helpctr\System\images\progbar.gif", 450, 5)
$aGif3 = _GUICtrlCreateGif(@SystemDir & "\oobe\images\dialup.gif", 5, 300)

GUISetState()

$iTimer = TimerInit()

While GUIGetMsg() <> -3
    If TimerDiff($iTimer) >= 2000 Then
        $aGif1[0].Stop
        $aGif2[0].Stop
        ;$aGif3[0].Stop
    EndIf
WEnd

Func _GUICtrlCreateGif($sGifFile, $iLeft, $iTop, $iWidth=-1, $iHeight=-1)
    Local $iSizes, $oIE, $nGUIActiveX, $iTimer

    If ($iWidth = -1 Or $iHeight = -1) And FileGetSize($sGifFile) > 9 Then
        $iSizes = FileRead($sGifFile, 10)

        If $iWidth = -1 Then $iWidth = Asc(StringMid($iSizes, 8, 1)) * 256 + Asc(StringMid($iSizes, 7, 1))
        If $iHeight = -1 Then $iHeight = Asc(StringMid($iSizes, 10, 1)) * 256 + Asc(StringMid($iSizes, 9, 1))
    EndIf

    $oIE = ObjCreate("Shell.Explorer.2")
    $nGUIActiveX = GUICtrlCreateObj($oIE, $iLeft, $iTop, $iWidth, $iHeight)
    $oIE.Navigate("about:blank")

    While $oIE.Busy
        Sleep(1)
    WEnd

    $oIE.Document.Body.Background = $sGifFile
    $oIE.Document.Body.Scroll = "No"

    Local $aRet[2] = [$oIE, $nGUIActiveX]

    Return $aRet
EndFunc
Если сильно постараться, то можно задать параметр таймаут для функции «_GUICtrlCreateGif», чтобы не нужно было проверять это в главном цикле, функция сама будет останавливать Gif'ку по истечению таймаута.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 17:12, 20-07-2010 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
HDD - Обнаружена ошибка на устройстве \Device\Harddisk2\D во время выполнения операции стра Igoryan Накопители (SSD, HDD, USB Flash) 7 15-10-2012 07:24
Интерфейс - Через некоторое время работы становятся недоступны административные функции afsh Microsoft Windows 7 4 28-10-2009 20:17
Загрузка - [решено] Windows XP зависает во время выполнения Log on Outlander55 Microsoft Windows 2000/XP 2 06-02-2009 19:26
Выполнения сценария PHP в заданное время. LEXX2002 Вебмастеру 4 17-02-2005 10:14




 
Переход