Delphi. Парсинг с MSHTML, решение проблемы всплывающего окна.

Напомню, в посте про загрузку страниц и парсинг я столкнулся с проблемой всплывающего окна, которое настойчиво предлагало сохранить “куки”. Выглядело оно так…

4

Ни о какой автоматической обработке 100 страниц не могло идти речи с этим окном! Посидев с проблемой пару вечеров, нашел 2 решения.

“Железный способ”

Самый “железный” способ – снизить безопасность в Internet Explorer до нуля! Как это сделать? Заходим в свойства браузера и выставляем ползунок в нулевое положение.

5

Программный способ избавиться от окна.

Если допустим мы пишем софт для машины клиента, а не для своей, и чтобы потом ему 33 раза не объяснять где что нажать, чтобы заработало, то программный способ просто необходим!!!

Исследование с помощью программы Process Monitor дало информацию о том, что при изменении ползунка значение переменной 1A10 меняется.

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

Правильным алгоритмом было бы – ставить значение 1A10 в ноль только на время участка кода скачивания страниц, иначе может возникнуть “дыра” в безопасности.

Ниже я привожу код, который меняет значение 1A10 в реестре в те моменты, когда это необходимо – а именно перед загрузкой страницы, а в момент “парсинга” (кнопка ShowAllTags) – значение 1A10 возвращаем в исходное состояние.

На форме 3 кнопки, label, edit… Обработку привожу только для 2 кнопок, Set1A10 – вспомогательная.

9

Итак, поехали.

В uses добавляем

Заведем глобальную переменную

Далее напишем 2 вспомогательных метода

Чтение 1A10 из реестра

Запись 1A10 в реестр

При создании формы

Загрузка страницы с IHTMLDocument2

“Парсинг” страницы (чтение всех тегов)

 

This entry was posted in Delphi, MSHTML, Без рубрики. Bookmark the permalink.