Здравствуйте, <Аноним>, Вы писали:
А>Как получить текст из окна имеющего в данный момент фокус (окно не мое, а произвольного приложения)?
Ставь глобальный хук, например, на активизацию окна (msdn->hooks).
Этот хук должен храниться в dll. Теперь Dll будет подгружаться в адресное пространство любого процесса, активизируещего окно. Ну, а находясь в адресном пространстве процесса можно использовать функцию GetWindowText.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как получить текст из окна имеющего в данный момент ф
S>Отвечу сам себе Еще не проснулся... и слегка ошибся. >> IMHO: этой функции "по барабану" в каком адресном пространстве она S>находится.
S>Функции не "по барабану". S>В вашем случае нужно послать WM_GETTEXT:
S>[msdn] S>To retrieve the text of a control in another process, send a WM_GETTEXT S>message directly instead of calling GetWindowText S>[/msdn]
И ещё не по барабану, какая версия ОС. В 2000 и старше Ваш подход не сработает,
поэтому юзать хуки.
S>Шаповаленко Денис.
... << RSDN@Home 1.1.3 stable >>
Re: Как получить текст из окна имеющего в данный момент фоку
Здравствуйте, SergH, Вы писали:
SH>Здравствуйте, Нахлобуч, Вы писали:
Н>>В achBuffer получили текст.
SH>Хороший способ. Еще можно WM_GETTEXTLENGTH послать для определения длинны.
Все равно хуки нужны. Если это Edit со стилем ES_PASSWORD, то тока через хуки
ICQ 156156278
Re: Как получить текст из окна имеющего в данный момент фоку
Здравствуйте, Andrew S, Вы писали:
AS>Что в нем хорошего? Какой смысл в аттаче к input queue?
Ну тормознул я, тормознул
А так, мысли следующие:
— получить окно с фокусов ввода — задача нетривиальная, GetFockus действует только в раках потока. Но c этим Attach, очевидно не справится.
— как минимум запароленые едиты в Win2000 не отдают свой текст насторону. Может для этого? Хотя поможет ли?
В общем, не знаю.
Делай что должно, и будь что будет
Re[5]: Как получить текст из окна имеющего в данный момент ф
AS>>Что в нем хорошего? Какой смысл в аттаче к input queue?
SH>Ну тормознул я, тормознул
Эээ... кхм. ок, по пунктам
SH>А так, мысли следующие: SH>- получить окно с фокусов ввода — задача нетривиальная, GetFockus действует только в раках потока. Но c этим Attach, очевидно не справится.
будет работать как надо.
Т.е. сам процесс получения текста труда не представляет, проблема в получении окна, которому принадлежит фокус ввода.
SH>- как минимум запароленые едиты в Win2000 не отдают свой текст насторону. Может для этого? Хотя поможет ли?
Насчет запороленых эдитов было какое то очень простое и оригинальное решение... сейчас поищу. Вот: http://www.theone.ru/lists/bugtraq/msg01741.html