Private Sub CommandButton1_Click()
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
objProcess.Terminate
Next
Set objProcesses = Nothing
Set objWMI = Nothing
Unload WebForm
End Sub
尝试使用此方法在运行某些从基于 Web 的服务器检索数据的功能之前关闭 Explorer 的所有实例,但当它尝试关闭具有多个选项卡的打开的浏览器时遇到问题。如果用户只打开一个 IE 窗口(一个选项卡),那么它会关闭它并继续前进;如果这些用户单独打开了多个窗口(不在一个窗口中打开选项卡),那么它会很好地关闭所有窗口并继续;但由于某种原因,如果打开一个窗口并包含多个选项卡,则会出现运行时错误“-2147217406 (80041002)”:“未找到”。任何解决此问题的帮助将不胜感激。
最佳答案
不完全符合您的要求,而是另一种使用 powershell 的方法,并包含一个选项(从 here 仅在 IE 打开超过 X 秒的情况下关闭窗口。
Sub Comesfast()
X2 = Shell("powershell.exe get-process iexplore | ? { ([DateTime]::Now - $_.StartTime).TotalSeconds -gt 05 } | stop-process", 1)
End Sub
关于vba - 通过 VBA 终止所有资源管理器实例 - Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167647/