В течение нескольких дней безуспешно искала решение этой проблемы, поэтому я решила опубликовать здесь и надеяться, что кто-нибудь сможет мне помочь.Что делает это еще сложнее, так это то, что я не могу воспроизвести эту проблему на моем компьютере очень последовательно.Иногда я получаю сообщение об ошибке, но большую часть времени не получаю.
По сути, я создаю объект IE, которым моя программа затем управляет в течение длительного периода времени.Происходит следующее: если пользователь выходит из программы, которую он вызывает oIE.Quit (), то закрывает программу.Это должно закрыть Internet Explorer и все процессы, связанные с ним.
Но процесс iexplorer не заканчивается закрытием.Затем, когда пользователь пытается запустить программу снова, мы получаем эту ошибку «System.Runtime.InteropServices.COMException (0x80004005): создание экземпляра компонента COM с CLSID {0002DF01-0000-0000-C000-000000000046} из IClassFactory завершилось ошибкойиз-за следующей ошибки: 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()