![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите ламеру осуществить хитрый перехват нажатие кнопки? [D6, WinXP]
Пенсионер © (2002-09-13 12:35:00)Добрый день, зу меня такая проблема, мне приходится в 2 разных программы забивать одни и те же данные, не поделится ли кто кусочком кода по поводу следующего:
1 необходимо перехватить нажатие кнопки "записать"
2 выполнить свою процедуру(считать значение полей и записать их куда нада - это сделано)
3 послать сообщение кнопке "записать" на нажатие.
Shaman_Naydak (2002-09-13 19:28:00) [1]>nikkie
Вот это действительно здравый подход
nikkie (2002-09-13 19:00:00) [2]>Пенсионер
а если сделать чуть по-другому? вводить данные в своей программе, по нажатию кнопки вписывать данные в чужое окно и нажать чужую кнопку. будет по-проще, без хука
Song (2002-09-13 15:19:00) [3]Надо хук писать.
Пенсионер (2002-09-13 13:24:00) [4]первое приложение - стороннего производителя у меня нет исходных кодов... мне нужно перехватить нажатие в нем кнопки, скопировать из него данные, и только потом нажать ее программно из своего приложения. То есть работа с чужими окнами получается...
Trof (2002-09-13 13:12:00) [5]Пишете обработчик события в обеих программах в классах нужных форм:
procedure WMChar(var Message: TMessage); message WM_USER;
В них вызываете обработчик события нужной кнопки, например:
Button1.OnClick(nil)
В обработчиках нажатия кнопок OnClick проверяете Sender-а на nil (чтоб не зациклить).
Если не nil, кроме нужных действий посылаете второму окну сообщение:
PostMessage(<дескриптор окна>,WM_USER,0,0);
Дескриптор окна можно найти с помощью FindWindow
Пенсионер (2002-09-13 12:57:00) [6]Дело в том, что первое приложение - терминал стороннего производителя, второе мое. Причем в первом приложении информация не сохраняется а уходит безвозвратно из за чего приходится забивать все по 2 раза. Поэтому и приходится извращаться :( хотя программист из меня неахти какой...
BOA_KAA (2002-09-13 12:47:00) [7]Ничего не понял! А почему Вы не хотите просто обработать OnClick для кнопки?