Local $iS = 6 ;间隔秒数
AdlibRegister('_add_report_items', $iS * 1000)
While 1
Sleep(1000)
Tooltip($iS - Round(TimerDiff($iTimer) / 1000))
Wend
Func _add_report_items()
Dim $iTimer = TimerInit()
Msgbox(0, '', 'refresh list view', 1)
EndFunc ;==>_add_report_items 回复 16# afan
{:face (239):} 这个到位,学习了AdlibRegister。 #include <Misc.au3>
#include <WinAPISys.au3>
Opt('TrayAutoPause', 0)
Local $hTimerProc = DllCallbackRegister('_add_report_itemsc', 'none', 'hwnd;uint;uint_ptr;dword');注册定时器回调函数
Global $oldMs = _WinAPI_GetTickCount();系统启动以来的毫秒数
Local $iTimerID = _WinAPI_SetTimer(0, 0, 1000, DllCallbackGetPtr($hTimerProc));每1000毫秒启动定时程序_add_report_itemsc
Do
Sleep(100)
Until _IsPressed('1B');按ESC退出
_WinAPI_KillTimer(0, $iTimerID);关闭定时器
DllCallbackFree($hTimerProc);反注册定时器回调函数
Func _add_report_itemsc($hWnd, $iMsg, $iTimerID, $iTime)
#forceref $hWnd, $iMsg, $iTimerId, $iTime
ConsoleWrite( Floor(($iTime - $oldMs)/ 1000) & @CRLF);显示的秒数
EndFunc ;==>_TimerProc
定时器版本 回复收藏,楼主的想法比较特别
页:
1
[2]