【发布时间】:2017-05-26 15:09:46
【问题描述】:
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 的服务器检索数据的功能之前,尝试使用此方法关闭所有资源管理器实例,但在尝试关闭具有多个选项卡的打开浏览器时遇到问题。如果用户只打开一个 IE 窗口(一个选项卡),那么它会很好地关闭它并继续;如果这些用户分别打开了多个窗口(不是在一个窗口中进行选项卡),那么它会很好地关闭它们并继续前进;但由于某种原因,如果一个窗口打开时有多个选项卡,则会出现运行时错误“-2147217406 (80041002)”:“未找到”。任何解决此问题的帮助将不胜感激。
【问题讨论】:
-
一种快速而肮脏的方法是将
On Error Resume Next和On Error GoTo 0包裹在objProcess.Terminate周围。我在我的机器上进行了调试,发现第一个 Terminate 调用一次关闭了所有窗口,无论它们是否打开了多个选项卡。也许只需执行一次并退出循环。
标签: vba excel excel-2010