找回密码
 加入
搜索
楼主: ipmitool

[AU3基础] [已解决]要如何讀取AdlibRegister剩餘的秒數

 火.. [复制链接]
发表于 2016-9-6 16:13:08 | 显示全部楼层
Global $iTimer = TimerInit()
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
发表于 2016-9-6 17:13:10 | 显示全部楼层
回复 16# afan


       这个到位,学习了AdlibRegister。
发表于 2016-9-6 17:57:28 | 显示全部楼层
#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

定时器版本
发表于 2016-9-6 23:46:14 | 显示全部楼层
回复收藏,楼主的想法比较特别
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-1 11:41 , Processed in 0.069335 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表