![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Pcrepair |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
Добрый день. Есть следующая ситуация:
- форма на форме ТВебБраузер - в Твебраузер загружается страница поисковика (Яндекс например) - в поисковике вводится поисковый запрос и нажимается кнопка "Найти" (это все веб-страница, элементы ХТМЛ-кода типа ФОРМ, ввводится и нажимается все вручную) - поисковик выдает ответ, все как обычно Необходимо: при нажатии кнопки "Найти" на веб-странице данные из окна ввода на веб-странице перенести в строковую переменную (чтоб не потерялись) конечно можно сделать все наоборот: в ЕДИТ на форме программы ввести текст запроса, нажать на кнопку на форме программы и передать данные в Твебраузер, но исходя из эргономики это нецелесообразно, снижает удобство работы с программой Вопрос: - подскажите в какую сторону искать, информация в инете в основном как передать данные или управление в браузер а не наоборот --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
Я бы делал так:
1) Выполнил скрипт, который найдёт кнопку и подвесит хэндлер к ней на JS (как выполнить скрипт в браузере - (Browser.Document as IHTMLDocument2).parentWindow.execScript ) 2) По хэндлеру выполнит код в программе. Это делается как описано тут http://www.delphidabbler.com/articles?article=22 -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Емнип, с TEmbeddedWB несколько проще - у него есть событие OnGetExternal. Большинство поисковиков используют GET-запросы (сейчас посмотрел на Google, Yandex, Wikipedia, Youtube). Не проще на OnBeforeNavigate парсить url и запоминать строку запроса? Просто я уже не в первый раз сталкиваюсь с тем, что WB крайне негативно относится к освобождению памяти за "левыми" скриптами... Это сообщение отредактировал(а) kami - 5.11.2013, 10:21 |
|||
|
||||
| Pcrepair |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
нет, необходимо только твеббраузер, поскольку там точно:
- есть встроенный интерпретатор скриптов - есть встроенный декодер кодовой страницы - ИЕ8, тем более ИЕ10 уже достаточно отработаны - ну и просто документация с примерами есть а как там будет на прибамбасах еще толком неизвестно и вообще спо твеббраузер хоть какой то опыт есть к тому мне тут всего надо ничего: - при нажатии на кнопку НАЙТИ на странице поисковика перенести строковые данные из окна ввода на странице(те которые передаются на сервер в ГЕТ) в ЕДИТ на интерфейсе программы (оне потом еще нужны будут) Если поискать видны два варианта 1. использовать прокси-сервер, не очень желательно, опять время тратить на пустяки 2. использовать событие BeforeNavigate2 твебраузера, типа
потом
но тут новая ненужная проблема, выскакивает исключение на код Wbbr_SM.OleObject.Document.all.tags('FORM').Length = 0 именно: E2171 Variable 'I' inaccessible here due to optimization E2171 Variable 'Src' inaccessible here due to optimization E2171 Variable 'Temp' inaccessible here due to optimization (ПЕРЕМ недоступна тут за за оптимизации?) в procedure GetIDsOfNames(const Dispatch: IDispatch; Names: PAnsiChar; NameCount: Integer; DispIDs: PDispIDList); overload; в модуле ComObj в чем может быть причина? --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
||||
|
|||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Зачем в этом событии пытаться достучаться до формы? Есть get-запрос, у которого один из параметров - как раз то, что введено в поисковую форму.
для Яндекса: вычленяем параметр text= и декодируем его. Это сообщение отредактировал(а) kami - 5.11.2013, 15:09 |
|||
|
||||
| Pcrepair |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
похоже для хугля и яндекса по разному и не везде параметр text=
тут некоторые предлагают приделать прокси сервер и через него отправлять запросы в поисковые машины (заодно и сам запрос в прокси-сервере выделять по простому) никто не в курсе, получится в яндексы, гугле,рамблеры и прочие яххууу!!! через прокси-сервер отсылать поисковые запросы, или опять какая нибуть лажа вылезет? --------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Допустим, ты реализовал прокси. И чем в нем проще выделить поисковый запрос?
Отсылать - получится. Но это - X Y Z. |
|||
|
||||
| Pcrepair |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
все оказалось проще:
WebSearchId(ГлобПЕРЕМ) - идентификатор для разных Пм разный, присваивается при загрузке страницы поиска ПМ типа:
--------------------
Сборник рабочего кода Процедур и Функций DelPhi http://validcoderepo.narod.ru/ |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |