子涵 发表于 2008-6-15 14:20:09

请问AU3中有没有时钟控件?如何创建?

VB中的时钟控件,在其时钟周期里设置了5秒后,它将在每个5秒时运行一次指定的子程序,请问在AU3中如何实现?

leewger 发表于 2008-6-15 19:12:18

AdlibEnable ( "函数名" [, 时间] )

每隔一定时间,就执行函数名一次,单位是毫秒

AdlibDisable ( ) 用来取消

星雨朝霞 发表于 2009-12-2 19:22:55

请问楼上的函数那有,我怎么找不到这个命令?

rchockxm 发表于 2009-12-2 22:43:40

新版是 AdlibRegister, AdlibUnRegister

seeking 发表于 2009-12-4 09:23:07

可以用多线程$Form1 = GUICreate("多线程实例", 272, 139, -1, -1)
$Label1 = GUICtrlCreateLabel("00:00:00:00", 8, 8, 146, 17)
$Label2 = GUICtrlCreateLabel("0", 8, 56, 150, 17)
$Label3 = GUICtrlCreateLabel("", 8, 104, 148, 17)
$Button1 = GUICtrlCreateButton("关闭线程1", 168, 8, 89, 25, 0)
$Button2 = GUICtrlCreateButton("关闭线程2", 168, 48, 89, 25, 0)
$Button3 = GUICtrlCreateButton("关闭线程3", 168, 96, 89, 25, 0)
GUISetState(@SW_SHOW)
Global $t2, $t3 = 1
$Timer = DllCallbackRegister("Timer", "int", "hwnd;uint;uint;dword")
$TimerDLL = DllCall("user32.dll", "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 1000, "ptr", DllCallbackGetPtr($Timer))
$Timer2 = DllCallbackRegister("Timer", "int", "hwnd;uint;uint;dword")
$Timer2DLL = DllCall("user32.dll", "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 200, "ptr", DllCallbackGetPtr($Timer2))
$Timer3 = DllCallbackRegister("Timer", "int", "hwnd;uint;uint;dword")
$Timer3DLL = DllCall("user32.dll", "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 500, "ptr", DllCallbackGetPtr($Timer3))
While 1
      Switch GUIGetMsg()
                Case - 3
                        Exit
                Case $Button1
                        DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "uint", $TimerDLL)
                        DllCallbackFree($Timer)
                Case $Button2
                        DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "uint", $Timer2DLL)
                        DllCallbackFree($Timer2)
                Case $Button3
                        DllCall("user32.dll", "int", "KillTimer", "hwnd", 0, "uint", $Timer3DLL)
                        DllCallbackFree($Timer3)
      EndSwitch
WEnd
Func Timer($hWnd, $uiMsg, $idEvent, $dwTime)
      If $idEvent = $TimerDLL Then
                GUICtrlSetData($Label1, @HOUR & ":" & @MIN & ":" & @SEC & ":" & @MSEC)
      ElseIf $idEvent = $Timer2DLL Then
                $t2 += 1
                GUICtrlSetData($Label2, $t2)
      ElseIf $idEvent = $Timer3DLL Then
                $t3 *= 2
                GUICtrlSetData($Label3, $t3)
      EndIf
EndFunc
页: [1]
查看完整版本: 请问AU3中有没有时钟控件?如何创建?