today2004 发表于 2010-7-26 20:28:57

While 1 里有sleep就不能退出了吗

While 1
Sleep(5000)
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSEThen ExitLoop
Wend
$oIE=0            ; 清除内存
GUIDelete ()

这样就不能退出了 去掉sleep就可以了

3mile 发表于 2010-7-26 20:37:39

Sleep(5000)=延时5秒。
每5秒检查一次$GUI_EVENT_CLOSE消息?

today2004 发表于 2010-7-26 20:53:14

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3> ;
#Region ### START Koda GUI section ###
$Form1 = GUICreate("窗体1",800, 600)
$oIE = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($oIE,1,1, 800, 600)
While 1
$oIE.navigate("http://www.baidu.cn/")
Sleep(5000)
$oIE.navigate("http://www.google.com/")
Sleep(5000)
$oIE.navigate("http://www.hao123.com/")
GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###
Sleep(5000)
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSEThen ExitLoop
Wend
$oIE=0            ; 清除内存
GUIDelete ()   

我的脚本是这样的 窗口关闭按钮没反映

today2004 发表于 2010-7-26 21:41:31

哪个高手帮检查下撒

3mile 发表于 2010-7-26 21:42:32

试试这个。#include <IE.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $url, $n = 1
$url = "http://www.baidu.cn/"
$url = "http://www.google.com/"
$url = "http://www.hao123.com/"
#Region ### START Koda GUI section ###
$Form1 = GUICreate("窗体1", 800, 600)
$oIE = ObjCreate("Shell.Explorer.2")
GUICtrlCreateObj($oIE, 1, 1, 800, 600)
$oIE.navigate("http://www.baidu.cn/")
GUISetState(@SW_SHOW)

AdlibRegister("IE", 5000)
While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd

Func IE()
        If $n = 3 Then $n = 0
        $oIE.navigate($url[$n])
        $n += 1
EndFunc   ;==>IE
$oIE = 0 ; 清除内存
GUIDelete()

wyd301 发表于 2010-7-30 11:19:51

测试了下,5楼的代码应该可以解决楼主的问题。

today2004 发表于 2010-8-8 02:07:00

嗯 可以了 感谢大家热心帮助

zzz867 发表于 2010-8-23 11:16:09

可能就是延迟造成的

sanmoking 发表于 2010-8-23 11:37:35

我已经很久不用超过sleep(10)的了,都用If TimerDiff($begin) > $befor * 1000 Then...{:face (303):}

pris 发表于 2013-4-13 17:17:16

这个可以。
页: [1]
查看完整版本: While 1 里有sleep就不能退出了吗