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

[AU3基础] 循环代码求解?循环里面里又循环和延时!(已解决)

 火... [复制链接]
发表于 2012-12-11 21:33:00 | 显示全部楼层
你把While 语句的表达式改成true就可以呀!

不知道AdlibRegister你在用什么来着!
 楼主| 发表于 2012-12-11 21:34:57 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-11 21:38 编辑

回复 13# lark

true 跟1有分别吗?

AdlibRegister 这是另二个循环
发表于 2012-12-11 21:41:54 | 显示全部楼层
应该有,你用两次循环的话会出现你的进程CPU使用率是一直25%的,你试一下,我以前发的一个帖子因为CPU使用高所以没用!
http://www.autoitx.com/forum.php ... 5747&highlight=
 楼主| 发表于 2012-12-11 21:44:58 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-11 21:47 编辑
AdlibRegister("detect2", 1000 * 60 * 30) ;30分钟
AdlibRegister("detect3", 1000 * 60 * 60) ;60分钟

While 1
        
        While 1

                If ....Then
                        ;代码
                        Sleep(1000 * 60 * 3)
                        ContinueLoop
                ElseIf ... Then
                        ;代码
                        Sleep(1000 * 60 * 2)
                        ContinueLoop
                ElseIf ... Then
                        ;代码
                        Sleep(1000 * 60 * 30)
                        ContinueLoop
                Else
                        Sleep(1000 * 60 * 5)
                        ExitLoop
                EndIf

        WEnd

WEnd
这样行吗,我觉得是一样的
发表于 2012-12-11 21:49:27 | 显示全部楼层
我到现在还没搞清楚你要实现什么样的东东?
 楼主| 发表于 2012-12-11 21:49:40 | 显示全部楼层
回复 18# lark

你这个我试过了,还是不行因为我循环还要延时等待
发表于 2012-12-11 21:56:06 | 显示全部楼层
你现在提供代码里条件也多,你里面的小循环退出时间也最少5分钟是嘛~ 小循环结束就开始那个大循环了!
还是找找别的办法吧!
发表于 2012-12-11 22:01:42 | 显示全部楼层
本帖最后由 netegg 于 2012-12-11 22:06 编辑

lz,你先说明下continueloop是干什么的,再说别的,这个continueloop是继续循环,麻烦你说说这么放着,代码知道你要继续进行哪个循环吗,还有exitloop也一样,退出哪个循环

另外,lz如果提问的话,最好说明到底要实现什么效果,光说没用的,就算把错误代码放上也没用。
 楼主| 发表于 2012-12-11 22:10:20 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-11 22:11 编辑

回复 23# netegg


    continueloop不合条件等待返回一直继续循环到合条件退出
 楼主| 发表于 2012-12-11 22:18:03 | 显示全部楼层
回复 24# cfs43210

我意思是PING 网络,网络不通等待3分钟继续循环,当网络通时,检查文件上否存在,文件存在时等待2分钟继续循环 ,直到没件不存在,当条件都符合时exitloop。等待15分钟重复
 楼主| 发表于 2012-12-11 22:18:30 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-11 22:31 编辑

回复 23# netegg
我意思是PING 网络,网络不通等待3分钟继续循环,当网络通时,检查文件上否存在,文件存在时等待2分钟继续循环 ,直到没件不存在,当条件都符合时exitloop。等待15分钟重复

AdlibRegister("detect2", 1000 * 60 * 30) ;30分钟
AdlibRegister("detect3", 1000 * 60 * 60) ;60分钟

While 1
       
        Sleep(1000 * 60 * 5)

        While 1

                If "ping=False" Then
                        ;代码
                        Sleep(1000 * 60 * 3)
                        ContinueLoop
                       
                ElseIf "文件<>0" Then
                       
                        If "服务器网络通" Then
                                ;代码
                                Sleep(1000 * 60 * 2)
                                ContinueLoop
                        Else
                                ;代码
                                Sleep(1000 * 60 * 30)
                                ContinueLoop
                               
                        EndIf
                       
                Else
                        ExitLoop
                EndIf

        WEnd

WEnd
发表于 2012-12-11 22:40:12 | 显示全部楼层
回复 24# cfs43210
如果你这么解释,那么两层loop,继续哪一层?
 楼主| 发表于 2012-12-11 22:47:02 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-11 22:53 编辑

回复 27# netegg
    第二层里还有一个IF 之后都合条件时ExitLoop
等待15分钟又重来 我重新表达了我的代码,这样你比较知道我的意思
发表于 2012-12-11 22:52:15 | 显示全部楼层
本帖最后由 netegg 于 2012-12-11 23:15 编辑

[au3]main()
Func main()
Do
        Sleep(180000)
Until Not (Ping('127.0.0.1'))
While 1
        If FileExists($file) Then
                Sleep(120000)
        Else
                main()
        EndIf
WEnd
EndFunc
[/au3]
 楼主| 发表于 2012-12-11 23:11:34 | 显示全部楼层
本帖最后由 cfs43210 于 2012-12-11 23:17 编辑

回复 29# netegg

你这样可以做我要做事吗,我第1步是PING IP 不通时拨号等待3分钟ContinueLoop返回循环,直拨号到通;第二步是检查我要上传的文件是否还有,如果还有没发送的,就检查我要发送的服务器,如果服务器通的话我要运行另一个程序,等待2分钟ContinueLoop返回循环,如服务器不通时等待30分钟ContinueLoop返回循环,直到文件全总部发送完。这些都做完了就退出当前循环ExitLoop。这就完成了一个过程。。现在等待15分钟就重复。谢谢!我头都大了。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 10:21 , Processed in 0.077234 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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