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

Показать сообщение отдельно

Аватара для Maza Faka

Ветеран


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

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


HORRIBLE
В общем вот быстрый и грубый пример, как реализовать счётчик миллисекунд, но учитывая, что AutoIt - скриптовый язык (а значит работает медленно), немного поигравшись со значениями, примерно подсчитал, что 60 вызовов функции _TimerProc() примерно равны 1 секунде. В принципе в сети есть примеры, но они для таких языков, как: C, C++, Delfi. Короче пробуй!
Код: Выделить весь код
#include <Date.au3>

Global $SecTimer = 0
Global $MsTimer = 0

$hGUI = GUICreate("Timer", 200, 100)

$SecLabel = GUICtrlCreateLabel("00:", 75, 40, 16, 15)

$MSLabel = GUICtrlCreateLabel("", 91, 40, 16, 15)
GUICtrlSetColor(-1, 0xFF0000)

GUISetState()

Global $TimerProcHandle = DllCallbackRegister("_TimerProc", "none", "hwnd;int;int;dword")

Global $TimerCall = DllCall("user32.dll", "int", "SetTimer", "hwnd", 0, "int", 0, "int", 1, _
                            "ptr", DllCallbackGetPtr($TimerProcHandle))
$TimerCall = $TimerCall[0]

Do
Until GUIGetMsg() = -3

DllCallbackFree($TimerProcHandle)
DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "int", $TimerCall)

Func _TimerProc($hWnd, $Msg, $IdTimer, $dwTime)
    If $MsTimer >= 60 Then
        $MsTimer = 0
        $SecTimer += 1
        If $SecTimer >= 60 Then $SecTimer = 0
        ControlSetText($hGUI, "", $SecLabel, StringFormat("%02i:", $SecTimer))
    EndIf

    $MsTimer += 1

    ControlSetText($hGUI, "", $MSLabel, StringFormat("%02i", $MsTimer))
EndFunc

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение

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

Отправлено: 13:49, 27-08-2008 | #816