Имя пользователя:
Пароль:
 

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

Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата Maza Faka:
примерно подсчитал, что 60 вызовов функции _TimerProc() примерно равны 1 секунде »
Но в одной секунде 1000 мс

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

Global $SecTimer = 0
Global $MsTimer = TimerInit()

$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 TimerDiff($MsTimer) >= 1000 Then
        $MsTimer = TimerInit()
        $SecTimer += 1
        If $SecTimer >= 60 Then $SecTimer = 0
        ControlSetText($hGUI, "", $SecLabel, StringFormat("%02i:", $SecTimer))
    EndIf

    ControlSetText($hGUI, "", $MSLabel, _
        StringFormat("%02i", Round(TimerDiff($MsTimer)) / 10)) ; / 10 это чтобы получить 10-чное представление
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

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

Отправлено: 17:26, 27-08-2008 | #817