我正在尝试使用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