如何使用VB脚本在IE上刷新所有网页



我正在尝试使用VB脚本在IE上打开几个不同的网站,它们将在每10秒内刷新所有网页。但是现在我有了这些代码,它只能刷新第一个网络,第二个网络根本不会刷新。你能帮忙吗?非常感谢。

Set objExplorer = CreateObject("InternetExplorer.Application")
WebSite ="http://keono.com/"
with objExplorer
.Navigate2 WebSite
.AddressBar = 1
.Visible = 1
.ToolBar = 1
.StatusBar = 1
end with
WebSite = "http://enquotemarketing.com/"
with objExplorer
.Navigate2 WebSite, &h800
.AddressBar = 1
.Visible = 1
.ToolBar = 1
.StatusBar = 1
end with

Do While True
WScript.Sleep 10000    ' 10 seconds
objExplorer.Refresh()
Loop

我的理解是您正在尝试在不同的IE选项卡中打开网页,然后刷新它们。通过.Navigate2 URL, &h800打开的新标签是在单独的全新IE实例中创建的,但是由于新选项卡属于IE窗口,因此它与IE窗口具有相同的HWND。因此,导航后,您可以检查每个Explorer窗口具有相同的HWND并存储新创建的窗口到Array。然后刷新其中的每个IE窗口。这是示例代码:

Option Explicit
Dim aTabs, aURLs, oIE, lIEHwnd, i, j, oWnd
' Navigate URLs in tabs
aURLs = Array( _
    "http://keono.com/", _
    "http://enquotemarketing.com/", _
    "http://stackoverflow.com/" _
)
ReDim aTabs(UBound(aURLs))
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = True
lIEHwnd = oIE.Hwnd ' IE window HWND
For i = 0 To UBound(aURLs)
    oIE.Navigate2 aURLs(i), &H800 ' Open the page in another IE instance
    ' Process until new IE instance is created
    Do
        j = 0
        For Each oWnd In CreateObject("Shell.Application").Windows
            If oWnd.Hwnd = lIEHwnd And Not (oWnd Is oIE) Then
                j = j + 1
                Set aTabs(i) = oWnd ' Assuming the last window
            End If
        Next
    Loop Until j = i + 1
Next
oIE.Quit ' Close 1st empty tab
' Wait until all tabs are ready
For Each oIE In aTabs
    Do While oIE.ReadyState < 3 Or oIE.Busy
        WScript.Sleep 10
    Loop
Next
' Refresh tabs
Do
    WScript.Sleep 10000
    For Each oIE In aTabs
        oIE.Refresh
    Next
Loop

最新更新