Невозможно преобразовать COM-объект типа System.__ComObject в интерфейс типа mshtml.HTMLDocument

Пытается подключиться к браузеру IE.. он работает некоторое время, затем начинает выдавать эту ошибку...

---------------------------

---------------------------
Unable to cast COM object of type 'System.__ComObject' to interface type 'mshtml.HTMLDocument'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{3050F55F-98B5-11CF-BB82-00AA00BDCE0B}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
---------------------------
OK   
---------------------------

этот код запускается на таймере 500 миллисекунд...

может кто-нибудь сказать мне, как это исправить?? что делаю не так?? || как я могу его улучшить... Мой код выглядит следующим образом...

 try
            {
                ShellWindows shellWindows = new ShellWindows();

                foreach (InternetExplorer ie in shellWindows)
                {
                    HTMLDocument document = ie.Document;

                    if (ie.LocationURL.Contains(ReserveRoomRsa + " ") || ie.LocationURL.Contains(ReserveRoomWww + " "))
                    {
                        if (bCodeScannerConnected && !idScannerShown)
                        {
                            idScannerShown = true;
                            ScanID(ie, "", "", "", "", "", "");
                            ie.Document.All.Item("guestHomePhone").Focus();
                            timer3.Enabled = true;
                        }
                    }
                    else if (ie.LocationURL.Contains(ReserveRoomRsa) || ie.LocationURL.Contains(ReserveRoomWww))
                    {
                        if (bCodeScannerConnected && !idScannerShown)
                        {
                            idScannerShown = true;
                            ScanID(ie, "lastName", "firstName", "homeAddressOne", "homeZip", "homeCity", "homeState");
                            ie.Document.All.Item("guestHomePhone").Focus();
                            timer3.Enabled = true;
                        }

                        DoNotRentAlert(ie.Document);
                    }
                    else if (ie.LocationURL.Contains(FindReservationRsa) || ie.LocationURL.Contains(FindReservationWww))
                    {
                        DoNotRentAlert(ie.Document);
                    }
                }
            }
            catch (Exception err)
            {
                if (i == 0)
                {
                    i += 1;
                    MessageBox.Show(err.Message);
                }
            }

ПРИМЕЧАНИЕ ДЛЯ СЕБЯ: Зачем мне нужна дополнительная информация? Исходный код - это НАМНОГО БОЛЬШЕ ДЕТАЛЕЙ, чем хочет выдать ПРОГРАММИСТ при написании следующего приложения на миллион долларов!

0 ответов

Другие вопросы по тегам