![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как поместить текст в Edit, находящийся в окне чужой проги?
S&G © (2002-08-06 13:49:00)Доброго времени суток!
Возникла тут у меня большая трабла. Может кто сталкивался с ней из великого ALL-а и знает, как ее победить?
Суть: есть некая прога, у которой в окне есть edit. И есть моя прога, которой надо поместить текст в этот самый эдит. (естесно, все под виндами). Как это сделать? Я мыслю, надо эмулировать нажатия клавиш путем посылки соответсвующих сообщений типа WM_KEYDOWN, WM_KEYUP и т.д. , предварительно узнав хендл. Ну поразвлекался я так... Весело было, но ни фига не работает. Потом я взял старый добрый Spy++ и посмотрел, какие мессаги происходят в эдите при нажатии клавиш. Попробовал проэмулировать их из своей проги. И вновь - "кликну, а в ответ тишина..." :) Такие вот пирожки.
Может, кто подскажет че-нить интересное по этому вопросу?
Заранее ОГРОМНОЕ спасибо!
S&G
S&G (2002-08-08 15:45:00) [1]Чтобы получить хендл эдита, надо взъюзнуть FindWindowEx()
Но есть там одна очень тонкая вещь, на которую я убил пару часов. Первый параметр - хендл родителя, т.е. окна, на котором эдит лежит. Это просто. А вот второй - хендл первого чайлда. По логике туда надо пихнуть NULL. Но не тут-то было! Оказалось, второй параметр должен быть такой же, как и первый, тогда ты сможешь находить хендлы эдитов, кнопарей и т.д. И будет тебе радость! :)
Удачи!
Song (2002-08-07 16:21:00) [2]FindWindowEx(), GetWindow()
Gari (2002-08-07 15:53:00) [3]А скажите мне уважаемые господа, каким образом мне получить handle окна и edit?
S&G (2002-08-07 11:30:00) [4]
Спасибо, Друг!
Да пребудет с Тобой Сила!
p.s. Как я вскоре установил, корректнее будет
SendMessage( hwnd, WM_SETTEXT, 0, LPARAM(LPCTSTR(str)) )
Но все равно СПАСИБО! Выручил :)
Удачного дня!
ilg (2002-08-07 11:23:00) [5]Это делается так:
,
Var str:string;
h:hWnd;
str:="Это мой текст!";
sendmessage(h,WM_SETTEXT,0,Integer(PChar(str)));
где h- handle того самого Edit.
Рад, если помог!
Song (2002-08-06 14:12:00) [6]WM_SETTEXT,WM_PASTE