| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > SendMessage есть, но клик не по кнопке |
| Автор: NewbieNoob 30.10.2011, 13:20 | ||
Происходит событие клика по форме, а не по кнопке(а еит вводятся координаты кнопки), фокус на кнопку не переносится. При этом я ловил OnMouseDown и Up на форме, координаты совпадали с передаваемыми, переносил курсор на координаты клика - он вставал над кнопкой, руками тыкал клик, кнопка срабатывала, в чем может быть ошибка? |
| Автор: jhonyxakep 30.10.2011, 13:53 |
Вы ведь явно тут нашли хендл окна, а не кнопки. |
| Автор: NewbieNoob 30.10.2011, 14:03 |
| мм, ну по идее, клик должен быть в окне, но не по самому окну, а по элементу. Когда программа будет готова, хэндл элемента получить не получится, надо отправлять сообщение о клике в окно, как будто пользователь кликнул. h:=FindWindow(nil,'prog') - пробовал получать хэндл приложения, но тоже не получается |
| Автор: bems 30.10.2011, 15:13 |
| NewbieNoob, твоя кнопка тоже окно. у неё свой хендл. это значит отправляй сообщение кнопке а не форме. что не понятно? |
| Автор: NewbieNoob 30.10.2011, 15:24 |
| А все прочитать сложно? Не будет потом хэндла кнопки, это сейчас, для тестов... Если через sendmessage вобще не получится, так и скажите. |
| Автор: bems 30.10.2011, 15:29 |
| NewbieNoob, разговаривай ровнее. Если кнопка останется кнопкой (TButton), то хендл у неё будет. Найти его можно например с помощью ChildWindowFromPoint. Не будет хендла только в случае если кнопка не наследуется от TWinControl (например TSpeedButton) |
| Автор: NewbieNoob 30.10.2011, 17:07 |
| Извиняюсь. А еще хэндла не будет если программа рассчитана на универсальную работу с любым приложением. Проблема именно в том, что нужно эмулировать клик только по координатам. Скорее всего, этими средствами так сделать не получится, но, наверное, можно на более низком уровне добиться желаемого? |
| Автор: bems 31.10.2011, 00:08 | ||
|
| Автор: northener 31.10.2011, 00:25 | ||
Он хочет работать без хэндлов! Ну т.е. никаких! Значит и окон не предвидится. О чём тогда мы говорим, и что ему советовать? Он хочет "кликать по координатам". Ну так бог ему в помощь, если учебники он не читал. |
| Автор: bems 31.10.2011, 00:36 | ||
тогда мы советуем использовать SendInput и просим выложить видеозапись попыток реализации |
| Автор: northener 31.10.2011, 00:39 |
Вот насчёт видеозаписи, это ты хорошо сказал. |