ziyaxian 发表于 2009-5-7 11:36:52

如何关闭这个ping循环

本帖最后由 ziyaxian 于 2009-5-7 16:36 编辑

我想3秒钟对所有服务器PING一次看其是否中断,但是用while以后,关不了这个程序了,请高手指点一下:代码如下:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <date.au3>
Opt("TrayMenuMode", 1)
$g_szVersion = "服务器网络监控"
If WinExists($g_szVersion) Then Exit ; 此脚本已经运行了
AutoItWinSetTitle($g_szVersion)

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("服务器网络监控", 265, 394, -1, -1)

_ping()
#EndRegion ### END Koda GUI section ###

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

      EndSwitch
        WEnd
       
       
       
Func _ping()
        While 1
       
Local $var,$a,$s
$b=8
$var = IniReadSection("config.ini", "名称")
        If @error <> 1 Then
      For $i = 1 to $var
                        $a = ping ( $var[$i],1000 )
               If $a Then
                                  $s =$var[$i]                               
                                  $Input1 = GUICtrlCreateInput($s, 8, $b, 105, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
                  $Input2 = GUICtrlCreateInput("正常", 123, $b, 61, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
                  $Input3 = GUICtrlCreateInput("延时:"&$a, 191, $b, 65, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
                          Else
                                  $s =$var[$i]                               
                                  $Input1 = GUICtrlCreateInput($s, 8, $b, 105, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
                  $Input2 = GUICtrlCreateInput("网络中断", 123, $b, 61, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
                                            GUICtrlSetColor(-1, 0xff0000)
                  $Input3 = GUICtrlCreateInput("请速处理", 191, $b, 65, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
                                            GUICtrlSetColor(-1, 0xff0000)
                                EndIf
                                $b=$b+25
                Next
        EndIf
       
$Input25 = GUICtrlCreateInput("日期/时间:" & _now(), 21, 363, 221, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$WS_BORDER))
GUISetState(@SW_SHOW)
Sleep(3000)

WEnd
EndFunc

ddx13 发表于 2009-5-7 15:29:37

多看帮助,ExitLoop退出循环
AdlibEnable ( "函数名" [, 时间] )

ziyaxian 发表于 2009-5-7 16:35:29

谢谢提醒,终于解决了

wmysbbs 发表于 2009-8-30 02:06:49

学习了。。。。

都市浪子666 发表于 2009-8-30 11:53:00

AdlibEnable   这命令我还第一次知道他的意思,谢谢

afan 发表于 2009-8-30 11:55:37

AdlibEnable   这命令我还第一次知道他的意思,谢谢
都市浪子666 发表于 2009-8-30 11:53 http://www.autoitx.com/images/common/back.gif

新版已经改了,改成 AdlibRegister 了

afan 发表于 2009-8-30 15:01:25

AdlibRegister ( "函数" [, 时间] )
关闭也改了
AdlibUnRegister( "函数" )

au3x 发表于 2011-12-4 01:20:40

OPT 有空要认真学一下

au3x 发表于 2011-12-11 16:39:15

学习........................

panbin1512 发表于 2013-5-20 17:40:24

学习........................
页: [1]
查看完整版本: 如何关闭这个ping循环