Всем привет! Подскажие пожалуйста как реализовать или в каком направлении двигаться. Нужно чтобы при вводе URL или при переходе по ссылке моя программа считывала этот URL. Знаю как считать URL с помощью WinApi но этого мало потому что нужно знать когда именно считывать... Второй вопрос. Нужно при скроллинге узнавать позицию скролла или хотябы узнать куда скроллится вверх или вниз... ps. программирую на делфи, но любой ответ поможет Всем ответившим заранее огромное спасибо!
Так как функциональность IE реализвана на COM, то по-идее можно перехватить методы отвечающие за данную функциональность. Ну и до кучи API какие-нибудь похватать.
Подключить свой event sink к IWebBrowser2, получать нотификации и контролить DISPID_BEFORENAVIGATE2 (или как-то так она называется, я путаюсь в константах) либо DISPID_NAVIGATECOMPLETE2 (аналогично) Проще всего посмотреть как это сделано в исходниках Formgrabber'а coban2k - классика жанра)
InternetOpenUrl не вызывается вообще хуками это вообще не реализуешь - wininet-апи грузят контент, а человеку надо контролировать именно переходы по страницам (клик/вбивание адреса в адресную строку).
barton А можно например перехватить send/WSASend и парсить запрос по кейвордам, ведь данные так или иначе отправятся гетом/постом?
Это ещё хуже, чем ловить HttpOpenRequest и прочие. Во-первых, ещё более низкоуровнево, что убивает логику (нужно ловить действие "переход на страницу в ИЕ", а не отсылка запроса), во вторых https например так не отловится, в третьих, запрос может быть фрагментирован несколькими вызовами. Если нужно ловить именно переходы по страницам - надо юзать event sink'и с IWebBrowser (DWebBrowserEvents). Помоему единственный правильный вариант..