Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: IHTMLDocument2::write(code), открывает IE. Почему?  (Прочитано 11464 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Jorik_85
Гость
« : 20-01-2009 06:12 » 

Здравствуйте все!
У меня следующая проблема.
Пытаюсь парсить текст html-страницы следующим образом:
-качаю страницу;
-пишу ее в IHTMLDocument2;
-ищу в документе все, что мне нужно.

После вызова метода IHTMLDocument2::write(code) открывается IE, вылетают ошибки IE, если на странице есть поток он начинает исполняться и это все продолжается до того момента пока не закончит работу приложение. Мне надо избавиться от всех этих неудобств. Кто знает подскажите пожалуйста, полезна будет любая инфа, очень нужно!!

Вот фрагмент кода:

Код:
StreamReader sread = new StreamReader("html-body.txt");
String html = sread.ReadToEnd();
sread.Dispose();
           
mshtml.HTMLDocumentClass hdoc = new HTMLDocumentClass();
       
hdoc.IHTMLDocument2_write(html);
           
Console.WriteLine("\n\nAPPLET\n");
IHTMLElementCollection appletColl = hdoc.getElementsByTagName("applet");
for (int i = 0; i < appletColl.length; i++)
{
     Console.WriteLine(((IHTMLElement)(appletColl.item(null, (object)i))).outerHTML);
}

Console.ReadLine();
Спасибо всем ОГРОМНОЕ!!!!!
Записан
zubr
Команда клуба

by
Offline Offline
Пол: Мужской

« Ответ #1 : 20-01-2009 07:30 » 

1. Создаешь объект IWebBrowser2
2. Устанавливаешь его свойство Visible в false
3. Устанавливаешь его свойство Silent в true, чтобы не отображались различные диалог-боксы об ошибках.
4. В свойство Document (IHTMLDocument2) объекта IWebBrowser2 делаешь write.
Записан
Jorik_85
Гость
« Ответ #2 : 20-01-2009 10:21 » 

Спасибо большое за ответ!

Но, у меня консольное приложение, а не Windows.Forms мне не у кого устанавливать свойство Visible в false.
Возможно ли прикрутить IWebBrowser к консольному приложению?

Записан
zubr
Команда клуба

by
Offline Offline
Пол: Мужской

« Ответ #3 : 20-01-2009 10:50 » 

А причем здесь тип твоего приложения. Объект IWebBrowser - это экземпляр IE. Сделав Visible == false ты просто делаешь данный экземпляр невидимым.
Записан
Jorik_85
Гость
« Ответ #4 : 22-01-2009 14:08 » 

Спасибо большое!
Окей. А как мне застопорить воспроизведение всевозможных флэшек, апплетов и потоков real time расположенных на странице?
Записан
zubr
Команда клуба

by
Offline Offline
Пол: Мужской

« Ответ #5 : 22-01-2009 17:02 » new

IHTMLDocument2 здесь тебе не поможет. Дело в том, что скрипты отрабатывают при загрузке документа, а с IHTMLDocument2 можно работать, когда документ уже загружен.
Смотри в сторону MIME-фильтра.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines