tangyi90 发表于 2013-2-4 09:43:56

这个无限循环怎么写

While 1
Local $ping = Ping("192.168.1.240")
If $ping >0 Then
          Run("E:\聊天工具\QQ2013\QQ.exe")
EndIf
WEnd

我这样写,这样一ping通192.168.1.240就会执行E:\聊天工具\QQ2013\QQ.exe,服务器一直ping的通,下面运行的E:\聊天工具\QQ2013\QQ.exe也一直运行,导致打开无数个QQ,怎么办?

haijie1223 发表于 2013-2-4 10:21:19

While 1
        Sleep(100)
        If Ping("192.168.1.240") And (Not ProcessExists("qq.exe")) Then
               Run("E:\聊天工具\QQ2013\QQ.exe")
        EndIf
WEnd

zhaobeining 发表于 2013-2-4 10:45:43

While 1
Local $ping = Ping("192.168.1.240")
If $ping >0 Then
          Run("E:\聊天工具\QQ2013\QQ.exe")
          ExitLoop
EndIf
WEnd

jojomecool 发表于 2013-2-4 10:52:18

好像2楼的比较有理

tangyi90 发表于 2013-2-4 11:26:04

回复 2# haijie1223


    3QU 非常谢谢

henry10423 发表于 2013-2-6 16:45:45

加个 Exitloop 跳出回圈就行了呀..

h20040606 发表于 2013-2-6 20:33:47

2楼的方法比较不错的

mbdnmt 发表于 2013-2-6 23:05:19

So easy! 2楼是对的~

82809085 发表于 2013-2-22 02:01:29

While 1
        If Ping("192.168.1.240", 250) Then
                Run("E:\聊天工具\QQ2013\QQ.exe")
        Else
                If ProcessExists('qq.exe') Then ProcessClose('qq.exe')
        EndIf
        Sleep(100)
WEnd

netegg 发表于 2013-2-23 02:17:28

本帖最后由 netegg 于 2013-2-23 02:32 编辑

While(Not ProcessExists("qq.exe"))
       If Ping("192.168.1.240")Then
          Run("E:\聊天工具\QQ2013\QQ.exe")
          exitloop
       endif
       Sleep(100)
WEnd
如果完全按照楼主的逻辑,变成如下顺序
While Ping("192.168.1.240")
       If(Not ProcessExists("qq.exe"))Then
          Run("E:\聊天工具\QQ2013\QQ.exe")
          exitloop
       endif
       Sleep(100)
WEnd
另外,加不加exitloop,要看楼主的意思,如果是循环检测进程,只是为了qq退出时自动重新登录,exitloop就不用加了
页: [1]
查看完整版本: 这个无限循环怎么写