[英]Close all IE windows except 1 in VBA
我正在使用以下代碼關閉所有IE窗口。 這是錯誤處理的一部分,當我較大的函數掛起或崩潰時,它將自動啟動新窗口。 發生這種情況時,我想關閉所有IE窗口,除了1個(我想保持最后一個打開以維護會話,因此瀏覽器在再次打開時不必重新進行身份驗證)。
我是否可以更新下面的循環,以使其關閉除最后一個窗口以外的所有IE窗口(保留打開哪個特定窗口都沒有關系,只需要打開一個窗口即可)。
Function closeallIE()
Dim objWMI As Object, objProcess As Object, objProcesses As Object
Set objWMI = GetObject("winmgmts://.")
Set objProcesses = objWMI.ExecQuery( _
"SELECT * FROM Win32_Process WHERE Name = 'iexplore.exe'")
For Each objProcess In objProcesses
Call objProcess.Terminate
Next
Set objProcesses = Nothing: Set objWMI = Nothing
Debug.Print wait(3)
End Function
您可以使用Count
屬性,並將PID與Taskkill一起使用:
Sub closeallIE()
Dim objWMI As Object, objProcess As Object, objProcesses As Object
Set objWMI = GetObject("winmgmts://.")
Set objProcesses = objWMI.ExecQuery( _
"SELECT * FROM Win32_Process WHERE Name = 'iexplore.exe'")
Dim j As Integer
j = objProcesses.Count
For Each objProcess In objProcesses
If j > 1 Then Shell "taskkill /f /PID " & CStr(objProcess.ProcessID), vbHide
j = j - 1
Next
Set objProcesses = Nothing
Set objWMI = Nothing
End Sub
該代碼段摘自HP UFT網站,有關關閉瀏覽器選項卡 。 這可以進行任何調整,並使用創建時間關閉所有選項卡,但最舊的選項卡除外(按創建時間)。
On error resume next
Set oDesc = Description.Create
oDesc( "micclass" ).Value = "Browser"
oDesc( "application version" ).Value = browserPropertyApplicationVersion
Set vIE= Desktop.ChildObjects(oDesc)
vIECount=vIE.count
z=vIECount
For m=1To vIECount - 1
z=z-1
If Browser("creationtime:="&z).Exist(0) Then
Browser("creationtime:=1").Close
End If
If err.number > 0 Then
message = message & " @@@@@@@Error shown by application is : " & err.description
icon_flag=0
End If
Next
Set oDesc = Nothing
Set vIE=Nothing
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.