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

[AU3基础] (已解决)请教:如何把下面的代码改为第半小时执行

 火.. [复制链接]
发表于 2013-1-18 08:46:26 | 显示全部楼层
回复 15# zym3138


    当然可以写到一起,我分出来写那个只是个演示功能,如果这样你还不明白的话我也没办法了。如果求思路可以,求代码的话~爱莫能助了。
发表于 2013-1-18 09:04:57 | 显示全部楼层
蛋蛋的位运算确实厉害,贴出来分享一下
Dim $n = @MIN
Dim $kg = 1

While 1
        If BitOR(BitAND(@MIN = $n, $kg = 1), BitAND(BitOR(@MIN = $n + 30, @MIN = $n - 30), $kg = 0)) Then
                $kg = Not $kg
                ConsoleWrite("=" & @CR)
        EndIf
WEnd
 楼主| 发表于 2013-1-18 09:09:41 | 显示全部楼层
回复 11# haijie1223

最后的func可以合并到上一个func吧,另外
     ConsoleWrite("=" & @CR )无法理解这一行代码,能解释一下吗、?

试了下你的代码,while一直循环执行,在测试中可以看到的,而不是间隔30分钟执行一次呢。
发表于 2013-1-18 09:10:22 | 显示全部楼层
回复 13# zym3138
While 1
sleep(2000)
        If  ProcessExists("foobar2000.exe") Then                 ProcessClose("foobar2000.exe");代为sygate
WEnd
 楼主| 发表于 2013-1-18 09:35:28 | 显示全部楼层
回复 14# haijie1223


    放到前面也不行啊,关闭不了foobar2000呢。都不执行func内的代码。
 楼主| 发表于 2013-1-18 09:51:58 | 显示全部楼层
回复 19# netegg


  用  sleep是可行的,可帮助里面说此延迟并不准确,有没有准确的定时方法呢。
发表于 2013-1-18 10:57:24 | 显示全部楼层
回复 21# zym3138
看你需要的精度,秒级的用不到那么精确,sleep够用了
 楼主| 发表于 2013-1-18 11:00:55 | 显示全部楼层
算了吧,在没有得到更好的方法下,我也只能用sleep将就了了。
发表于 2013-1-18 11:03:01 | 显示全部楼层
如楼上各位所说,adlib不建议在等待时间过长的情况下使用,我上面之所以给出是因为不知道楼主的代码到底是什么,只好如此
发表于 2013-1-18 11:06:50 | 显示全部楼层
本帖最后由 netegg 于 2013-1-18 11:15 编辑

回复 23# zym3138
这话说的,更精确的方法当然有,但是对你这个题目没必要,100微秒(0.1毫秒)的精确度,楼主觉得有用吗?
另外可以创建semiphore并行对象处理,或者直接用pdh走性能计数的方法计时
发表于 2013-1-18 12:45:33 | 显示全部楼层
;只在30分钟后运行一次
$begin = TimerInit()
$open = 1
While  1
        If TimerDiff($begin) > 30*60*1000 And $open = 1 Then                
                 ;~........
                $open = 0
                $begin = TimerInit()                
        endIf
        Sleep(10)
WEnd

;每隔30分钟后运行一次
$begin = TimerInit()
While  1
        If TimerDiff($begin) > 30*60*1000 Then                ;30(分钟)*60(秒)*1000(毫秒)
                 ;~........
                $begin = TimerInit()                
        endIf
        Sleep(10)
WEnd
 楼主| 发表于 2013-1-24 22:04:53 | 显示全部楼层
回复 26# sanmoking


   谢谢你提供的TimerInit()函数,测试可行。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 03:34 , Processed in 0.107538 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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