找回密码
 加入
搜索
查看: 4533|回复: 18

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

 火.. [复制链接]
发表于 2016-9-5 09:11:01 | 显示全部楼层 |阅读模式
本帖最后由 ipmitool 于 2016-9-7 08:06 编辑

假設AdlibRegister 600000 秒, 語法如下, 那要怎麼讀取 AdlibRegister 剩餘秒數
也就是下一次做 AdlibRegister 的時間? 謝謝...

AdlibRegister('_add_report_items', 600000)
发表于 2016-9-5 14:26:16 | 显示全部楼层
首先不存在下次AdlibRegister这个要求,因为他每隔600000毫秒自动会执行'_add_report_items'
AdlibRegister('_add_report_items', 600000)
;... Exit  
Func _add_report_items()    
;... 运行中尽量避免使用等待效果的函数, 例如 Wait(), MsgBox(), InputBox()等...     
;... 那样会导致整个程序中断...     
;如果运行一次后想取消,那就要在这里反注册         
AdlibUnRegister("_add_report_items") 
EndFunc
 楼主| 发表于 2016-9-5 19:28:44 | 显示全部楼层
回复 2# seniors


    感謝您的回覆, 可是我是想知道它數到幾秒了...然後output到變數裡面...
    不是要反註冊耶..
发表于 2016-9-5 21:28:14 | 显示全部楼层
回复 2# seniors


    这个标本好  收藏学习。
发表于 2016-9-6 08:13:55 | 显示全部楼层
回复  seniors


    感謝您的回覆, 可是我是想知道它數到幾秒了...然後output到變數裡面...
    不是 ...
ipmitool 发表于 2016-9-5 19:28


要知道数到几秒,用timer定时器能知道的
发表于 2016-9-6 09:27:10 | 显示全部楼层
本帖最后由 1361739590 于 2016-9-6 09:32 编辑

大概这个意思么。

Global $hTimer
AdlibRegister('_add_report_items', 600000)
while 1
        $a = TimerDiff($hTimer)
        Sleep(100)
wend
;... Exit
Func _add_report_items()
$hTimer = TimerInit()
;... 运行中尽量避免使用等待效果的函数, 例如 Wait(), MsgBox(), InputBox()等...
;... 那样会导致整个程序中断...
;如果运行一次后想取消,那就要在这里反注册
;AdlibUnRegister("_add_report_items")
EndFunc
 楼主| 发表于 2016-9-6 11:49:32 | 显示全部楼层
回复 6# 1361739590


    您好, 我加了一個msgbox, display出來這個$a, 好像沒有在倒數, 一直在亂跳數值耶..
发表于 2016-9-6 11:56:08 | 显示全部楼层
回复 7# ipmitool


    因为 600s 才调用一次 _add_report_items(),调用了 _add_report_items() 时间才算
可以改成 AdlibRegister('_add_report_items', 20000),等20S就能看到了。
发表于 2016-9-6 14:40:06 | 显示全部楼层
另一種思路
AdlibRegister("sss")
While 1

Sleep(5000)
WEnd
Func sss()
        AdlibUnRegister("sss")
                For $i = 9 to 1 Step -1
                        ToolTip($i,0,0)
            Sleep(1000)
Next
        
        AdlibRegister("sss")
        EndFunc
 楼主| 发表于 2016-9-6 14:43:47 | 显示全部楼层
感謝大大們幫忙!!
发表于 2016-9-6 14:53:36 | 显示全部楼层
回复 9# mars0916


    这个功能是什么?
 楼主| 发表于 2016-9-6 14:55:22 | 显示全部楼层
本帖最后由 ipmitool 于 2016-9-6 14:56 编辑

因為我每次AdlibRegister 會去 refresh ListView一次, 要讓使用者知道多久後會refresh list view...


拍謝, 不是在跟我講話喔...哈哈哈
发表于 2016-9-6 15:43:56 | 显示全部楼层
回复 12# ipmitool
大概會這麼弄。。。。。

Global $hTimer
AdlibRegister('_add_report_items', 5000)
MsgBox(0,"","等待中, 5s 自動關閉......",5)
while 1
        Sleep(300)
wend
;... Exit
Func _add_report_items()
        $hTimer = TimerInit()
        ;... 运行中尽量避免使用等待效果的函数, 例如 Wait(), MsgBox(), InputBox()等...
        ;... 那样会导致整个程序中断...
        MsgBox(0,"","更新",1)
        While 1
                $a = TimerDiff($hTimer)
                Sleep(300)
                $t = 5-Int($a/1000)
                If $t < 1 Then
                        ToolTip("更新中。")
                        ExitLoop
                Else
                        ToolTip("還剩 "& $t &"秒更新。")
                EndIf
        WEnd

        ;如果运行一次后想取消,那就要在这里反注册
        ;AdlibUnRegister("_add_report_items")
EndFunc
 楼主| 发表于 2016-9-6 15:48:03 | 显示全部楼层
回复 13# 1361739590


    感謝你, 小弟一輩子受用無窮
发表于 2016-9-6 15:54:35 | 显示全部楼层
经典了,好好学习。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-29 18:46 , Processed in 0.081510 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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