打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
AutoIT中多定时器用法实例

在Autoit中实现VB的Timer控件,用过VB的人都知道Timer控件,即在一段时间间隔内重复运行一段代码,此间暂停脚本运行,这一点和Autoit的AdlibEnable函数很相似。但与之不同的是前者可以建立无数个Timer控件,而后者只能AdlibEnable一次。

#Include <Date.au3>
#include <GuiConstants.au3>

GuiCreate("Timer",  124,  99)

$Label_1 =  GuiCtrlCreateLabel("Time loading...",  10,  10,  140,  20)
$Label_2 =  GuiCtrlCreateLabel("00",  10,  40,  70,  20)
$Label_3 =  GuiCtrlCreateLabel("00",  10,  70,  80,  20)

Global  $pTimerProc = DLLCallbackRegister("_TimerProc","int" ,"hwnd;uint;uint;dword")
Global  $uiTimer =  DllCall("user32.dll",  "uint",  "SetTimer",  "hwnd",  0,  "uint",  0,  "int",  1000,  "ptr",  DllCallbackGetPtr ($pTimerProc))
Global  $pTimerProc2 = DLLCallbackRegister("_TimerProc","int" ,"hwnd;uint;uint;dword")
Global  $uiTimer2 =  DllCall("user32.dll",  "uint",  "SetTimer",  "hwnd",  0,  "uint",  0,  "int",  200,  "ptr",  DllCallbackGetPtr ($pTimerProc2))
Global  $pTimerProc3 = DLLCallbackRegister("_TimerProc","int","hwnd;uint;uint;dword")
Global  $uiTimer3 =  DllCall("user32.dll",  "uint",  "SetTimer",  "hwnd",  0,  "uint",  0,  "int",  700,  "ptr",  DllCallbackGetPtr ($pTimerProc3))

GuiSetState()
While  1
     $msg =  GuiGetMsg()
     Select
     Case  $msg =  $GUI_EVENT_CLOSE
         DllCall("user32.dll",  "int",  "KillTimer",  "hwnd",  0,  "uint",  $uiTimer[0])
       DllCallbackFree ($pTimerProc)
        DllCall("user32.dll",  "int",  "KillTimer",  "hwnd",  0,  "uint",  $uiTimer2[0])
       DllCallbackFree  ($pTimerProc2)
        DllCall("user32.dll",  "int",  "KillTimer",  "hwnd",  0,  "uint",  $uiTimer3[0])
       DllCallbackFree  ($pTimerProc3)
        Exit
     Case  Else
         ;;;
     EndSelect
WEnd
Exit

Func _TimerProc($hWnd,  $uiMsg,  $idEvent,  $dwTime)
     ;$idEvent能分辨是哪个Timer控件调用了这个函数
     ;$dwTime表示已开机的时间
     Switch  $idEvent
         Case  $uiTimer[0]
             GUICtrlSetData($Label_1,_Now  (  ))
         Case  $uiTimer2[0]
             GUICtrlSetData($Label_2,GUICtrlRead($Label_2)+1)
         Case  $uiTimer3[0]
             GUICtrlSetData($Label_3,GUICtrlRead($Label_3)+1)
     EndSwitch
EndFunc

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DllCall 学习笔记
MFC中计时器的编写
SetTimer和KillTimer函数
VC中定时器的使用_VC技术文章_VC_软件编程
也说说Thunk - 桃之夭夭,灼灼其华.
OnTimer()&SetTimer() -- 叛逆的天空 -- 编程爱好者博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服