Перехват события перехода по ссылке Internet Exploer из своей программ

Тема в разделе "WASM.WIN32", создана пользователем Morojenko, 8 ноя 2008.

  1. Morojenko

    Morojenko New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2008
    Сообщения:
    3
    Всем привет!
    Подскажие пожалуйста как реализовать или в каком направлении двигаться. Нужно чтобы при вводе URL или при переходе по ссылке моя программа считывала этот URL. Знаю как считать URL с помощью WinApi но этого мало потому что нужно знать когда именно считывать...

    Второй вопрос. Нужно при скроллинге узнавать позицию скролла или хотябы узнать куда скроллится вверх или вниз...


    ps. программирую на делфи, но любой ответ поможет :)

    Всем ответившим заранее огромное спасибо! :)
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Так как функциональность IE реализвана на COM, то по-идее можно перехватить методы отвечающие за данную функциональность. Ну и до кучи API какие-нибудь похватать.
     
  3. Morojenko

    Morojenko New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2008
    Сообщения:
    3
    ммм, я с com не знаком... может ещё какие-то варианты есть?
     
  4. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Morojenko
    познакомся
     
  5. Morojenko

    Morojenko New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2008
    Сообщения:
    3
    Booster
    спасибо, буду щас разбираться :)
    wsd
    И вам спасибо за ценный совет :)
     
  6. barton

    barton New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2008
    Сообщения:
    164
    Адрес:
    Czechoslovakia
    Подключить свой event sink к IWebBrowser2, получать нотификации и контролить DISPID_BEFORENAVIGATE2 (или как-то так она называется, я путаюсь в константах) либо DISPID_NAVIGATECOMPLETE2 (аналогично)
    Проще всего посмотреть как это сделано в исходниках Formgrabber'а coban2k - классика жанра)
     
  7. dendi

    dendi New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2007
    Сообщения:
    233
    или хук InternetOpenUrl
     
  8. barton

    barton New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2008
    Сообщения:
    164
    Адрес:
    Czechoslovakia
    InternetOpenUrl не вызывается вообще

    хуками это вообще не реализуешь - wininet-апи грузят контент, а человеку надо контролировать именно переходы по страницам (клик/вбивание адреса в адресную строку).
     
  9. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    barton
    А можно например перехватить send/WSASend и парсить запрос по кейвордам, ведь данные так или иначе отправятся гетом/постом?
     
  10. barton

    barton New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2008
    Сообщения:
    164
    Адрес:
    Czechoslovakia
    Это ещё хуже, чем ловить HttpOpenRequest и прочие. Во-первых, ещё более низкоуровнево, что убивает логику (нужно ловить действие "переход на страницу в ИЕ", а не отсылка запроса), во вторых https например так не отловится, в третьих, запрос может быть фрагментирован несколькими вызовами.
    Если нужно ловить именно переходы по страницам - надо юзать event sink'и с IWebBrowser (DWebBrowserEvents). Помоему единственный правильный вариант..
     
  11. DarkWanderer

    DarkWanderer New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2006
    Сообщения:
    333
    Адрес:
    Барнаул.
    читать адрес раз во время.
     
  12. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    DarkWanderer И сравнивать строки? Вот код тормознутый будет...