Доступ к элементам страницы в браузере

Тема в разделе "WASM.WIN32", создана пользователем Aspire, 21 ноя 2009.

  1. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Привет, Васмовцы.
    При загрузке поисковика в браузер мы видим окно для ввода текста для поиска. Мне нужно получить доступ к этому окну (читать-писать) не прибегая к использованию ком-библиотеки. Посылка сообщений родительскому окну не дает никаких результатов.
     
  2. fuckinff

    fuckinff New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2009
    Сообщения:
    32
    хм посмотри интерфейс IAccessible или можно хукнуть HttpSendRequest и иже с ним для ие и PR_read/PR_write для фф, изменять содержимое строки еще до отображения юзеру
     
  3. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Можно, уже хукнуто, но интереснее достучаться до окна и понять как с таким работать.
     
  4. fuckinff

    fuckinff New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2009
    Сообщения:
    32
    интерфейс IAccessible поддерживается большинством браузеров, если проблема только в необходимости кроссбраузености, то это выход.

    насколько я знаю окно с контентом у ие называется Internet Explorer_Server, можно посылать ему сообщения WM_SETCURSOR/WM_LBUTTONCLICK/WM_KEYDOWN с координатами поля (WM_MOUSEMOVE) а затем послать последовательность WM_CHAR или сопировать то что нужно и вставить WM_PASTE. Имхо поле должно заполняться. Помониторь сообщения Spy++
     
  5. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    fuckinff Именно так у меня сейчас и реализовано, используя допущение, что курсор, как правило, сам ставится на это окно. Про координаты поля немножко не понял. Я понимаю как координаты текста найти, а как координаты поля? Хотя, я даже и не смотрел, предположу, что это затруднительно. И через жопу. Посмотрю на досуге в сторону IAccessible, ради интереса.
    Но хотел бы повториться: этот вопрос задан не ради советов по способам реализации моей предположительной цели (искреннее спасибо, fuckinff), а для того, чтобы понять как получить доступ (хендл, айди или еще что-то) этого элемента. Мне уже намекнули на то, что он может отрисовываться вручную, тогда никаких хендлов там не будет, но все-таки хочется услышать мнение главных по окошечкам (Twister && kero). Извините, не хочу показаться занудой.
    PS. По поводу вопроса про браузер: я думаю, что в любом браузере страница отобразится одинаково, поэтому - без разницы.
    PPS. Вопрос из чистого любопытства, поэтому сам не напрягаюсь и напрягаться никого не прошу.

    Данке шён. :)
     
  6. fuckinff

    fuckinff New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2009
    Сообщения:
    32
    вот как раз IAccessible и позволит получить хенл поля ввода) причем достаточно просто. скачай AccExplorer32.exe с сайта МС, там есть опция как в Spy++ - Select with mouse, - то что тебе нужно, только что попробовал, получил хендлы в ие и фф на гугле и я.ру)

    Вот тут есть пример работы с интерфейсом:
    http://www.codeproject.com/KB/winsdk/XMSAALib.aspx

    напиши о результате
     
  7. fuckinff

    fuckinff New Member

    Публикаций:
    0
    Регистрация:
    21 ноя 2009
    Сообщения:
    32
    кстать в этом интерфейсе присудствуют методы getAccValuse setAccValue, т.е. то что тебе нужно
     
  8. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Это хендлы родительских окон. Скинул асю тебе в личку, так проще будет.