waxy 发表于 2010-5-14 19:38:47

[已解决]IF...Then后面执行多条语句问题

本帖最后由 waxy 于 2010-5-15 11:10 编辑

各位,请教想在IF...Then后面执行多条语句的问题,先看看下面的代码吧.
........
Func main()
    IfNot WinActive ("ECI") Then MsgBox(16, "警告...", "EIC被意外的退出,10秒钟后系统重启后将继续!!",10) ;想在这个地方直接执行重启----Shutdown(10)
    Shutdown(10)       
Sleep(2000)
If $time <= 0 Then ProcessClose("ECI")
$PID = ProcessExists("ECI")
If $PID Then ProcessClose($PID)
Shutdown(5)
EndFunc   ;==>main
想让脚本 IfNot WinActive ("EIC") 显示提示后,直接重启,如果把Shutdown(10)放在下行,又有一个问题,当If $time <= 0 then exitloop后脚本也会先
执行重启"Shutdown(10)"而不先结束ECI的进程,再关机.不知道有没有办法IF...Then后面执行多条语句,麻烦有时间帮看看,先谢了.

afan 发表于 2010-5-14 20:50:03

$time 在哪定义的
If $time <= 0 then exitloop 在哪
If $time <= 0 Then ProcessClose("ECI") 这里能终止ECI吗? 为什么下面也是终止ECI的代码? 那还要If干嘛?
完全不懂你的目的哦

298311657 发表于 2010-5-14 21:29:22

这样?
    IfNot WinActive ("ECI") Then
    MsgBox(16, "警告...", "EIC被意外的退出,10秒钟后系统重启后将继续!!",10)
    Shutdown(10)
    EndIf

waxy 发表于 2010-5-15 11:07:20

本帖最后由 waxy 于 2010-5-15 11:22 编辑

回复 2# afan
先谢谢afan!不好意思,是我没讲清楚,还是我上次问你那个ECI系统的问题.想做成让脚本自动运行ECI 10小时(用倒计时的方式If $time <= 0 Then ProcessClose("ECI") ),
如果没问题就关机.但在这10小时中可能出些一些意外导致ECI终止(通过IfNot WinActive ("ECI") 来判断),如果意外终止的就自动重启再次运行ECI直到没问题止.
脚本的前面还有两个循环语句,用于判断If $time <= 0 Then exitloop/IfNot WinActive ("ECI") the exitloop;      Func main()再次判断两个循环语句结束后执行的
其它动作.问题已经解决了,其实只要在IfNot WinActive ("ECI") Then后面加个endif结束IF即可.298311657 兄弟说的是对的.谢谢!

waxy 发表于 2010-5-15 11:07:54

这样?
298311657 发表于 2010-5-14 21:29 http://www.autoitx.com/images/common/back.gif
谢谢你,问题解决了.
页: [1]
查看完整版本: [已解决]IF...Then后面执行多条语句问题