找回密码
 加入
搜索
查看: 3082|回复: 9

如何关闭这个ping循环

[复制链接]
发表于 2009-5-7 11:36:52 | 显示全部楼层 |阅读模式
本帖最后由 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[0][0]
                        $a = ping ( $var[$i][0],1000 )
                 If $a Then
                                  $s =$var[$i][1]                               
                                  $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][1]                               
                                  $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
发表于 2009-5-7 15:29:37 | 显示全部楼层
多看帮助,  ExitLoop退出循环
AdlibEnable ( "函数名" [, 时间] )
 楼主| 发表于 2009-5-7 16:35:29 | 显示全部楼层
谢谢提醒,终于解决了
发表于 2009-8-30 02:06:49 | 显示全部楼层
学习了。。。。
发表于 2009-8-30 11:53:00 | 显示全部楼层
AdlibEnable   这命令我还第一次知道他的意思,谢谢
发表于 2009-8-30 11:55:37 | 显示全部楼层
AdlibEnable   这命令我还第一次知道他的意思,谢谢
都市浪子666 发表于 2009-8-30 11:53


新版已经改了,改成 AdlibRegister 了
发表于 2009-8-30 15:01:25 | 显示全部楼层
AdlibRegister ( "函数" [, 时间] )
关闭也改了
AdlibUnRegister( "函数" )
发表于 2011-12-4 01:20:40 | 显示全部楼层
OPT 有空要认真学一下
发表于 2011-12-11 16:39:15 | 显示全部楼层
学习........................
发表于 2013-5-20 17:40:24 | 显示全部楼层
学习........................
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 03:33 , Processed in 0.104047 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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