自然 发表于 2012-2-20 10:21:09

内镶IE如何做到下面描述的功能

本帖最后由 自然 于 2012-2-20 10:22 编辑

内镶一个IE,有多个网址,
打开第一个网址15秒如没加载完成则执行打开第二个网址,
第二个网址15秒如没加载完成则执行打开第三个网址,
第三个网址15秒如没加载完成则执行打开第四个网址,依此类推
如第一个网址加载完成则不再打开后面的网址,依此类推#include<ie.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate(" test ", 850, 520, -1, -1)
$oIE = _IECreateEmbedded()
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 850, 520)
$oIE.navigate("http://www.sina.com.cn/")
$oIE.navigate("http://www.163.com/")
$oIE.navigate("http://www.hao123.com/")
GUISetState(@SW_SHOW)
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

kuautoit 发表于 2012-2-20 10:23:20

看看,我也不太会,有同样的问题

wan_2099 发表于 2012-2-20 14:11:36

看看,帮顶

lixiaolong 发表于 2012-2-21 01:32:17

本帖最后由 lixiaolong 于 2012-2-21 01:33 编辑

回复 1# 自然

试试这个.#include<ie.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate(" test ", 850, 520, -1, -1)
$oIE = _IECreateEmbedded()
$GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 850, 520)

_IENavigate_2($oIE, "http://www.sina.com.cn/", 1, 15000) ;1000 = 1秒
If @error = 6 Then _IENavigate_2($oIE, "http://www.163.com/", 1, 15000)
If @error = 6 Then _IENavigate_2($oIE, "http://www.hao123.com/", 1, 15000)

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

        EndSwitch
WEnd

Func _IENavigate_2(ByRef $o_object, $s_Url, $f_wait = 1, $Time_out = 300000)
        If Not IsObj($o_object) Then
                __IEErrorNotify("Error", "_IENavigate", "$_IEStatus_InvalidDataType")
                Return SetError($_IEStatus_InvalidDataType, 1, 0)
        EndIf
        ;
        If Not __IEIsObjType($o_object, "documentContainer") Then
                __IEErrorNotify("Error", "_IENavigate", "$_IEStatus_InvalidObjectType")
                Return SetError($_IEStatus_InvalidObjectType, 1, 0)
        EndIf
        ;
        $o_object.navigate($s_Url)
        If $f_wait Then
                _IELoadWait($o_object, 0, $Time_out)
                Return SetError(@error, 0, -1)
        EndIf

        Return SetError($_IEStatus_Success, 0, -1)
EndFunc   ;==>_IENavigate_2

自然 发表于 2012-2-21 08:18:37

这功能我是想搞个网络电视直播的,当一个地址失效,15秒后连接另一个地址播放
如能打开则在第一个地址播放。楼上的代码换成信号地址试了下,15秒后第一个地址没打开的情
况下不会跳转到下一个地址,但还是非常感谢楼上的热心回答!
页: [1]
查看完整版本: 内镶IE如何做到下面描述的功能