【发布时间】:2011-05-19 00:52:04
【问题描述】:
几天来一直在寻找解决这个问题的方法,但没有运气,所以我决定在这里发帖,希望有人能帮助我。更难的是,我无法在我的计算机上非常一致地复制这个问题。有时我会收到错误,但大多数时候不会。
基本上正在发生的事情是我正在创建一个 IE 对象,然后我的程序会在很长一段时间内控制该对象。发生的情况是,如果用户退出程序,它会调用 oIE.Quit() 然后关闭程序。这应该会关闭 Internet Explorer 以及与之关联的所有进程。
但是,iexplorer 进程并没有结束。然后,当用户尝试再次运行程序时,我们收到此错误“System.Runtime.InteropServices.COMException (0x80004005): Creating an instance of the COM component with CLSID {0002DF01-0000-0000-C000-000000000046} from the IClassFactory failed由于以下错误:80004005。”。
要解决这个问题,我们只需关闭所有打开的 iexplorer.exe 进程,它会让我们再次创建 ie 对象。如果程序崩溃并且他们尝试重新启动它,也会发生这种情况。
我不确定是什么原因造成的,或者我是否遗漏了与 com 对象有关的内容。但我只是卡住了。
这是一些代码,尽管插入此代码可能不会重现任何错误:
'create ie object
oIE = New SHDocVw.InternetExplorer
oIE.Navigate("http://www.google.com")
oIE.Visible = False
oIE.Silent = True
'kill ie object
oIE.Quit()
【问题讨论】: