Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Посылка сообщения [D6, WinXP]


Руслан ©   (2005-09-02 11:07:00) 

здравствуйте мастера, вот у меня какой вопорс:
как программно нажать кнопку мышки, незная наперед, какой объект будет нажат. Тоесть в таймере выставляется интервал, сворачивается прога в трей, мышка наводится на любой объект в любой проге (скажем кнопка Next в винампе или Refresh в експлорере) и по таймеру посылается сообщение этому объекту. Но вот как отыскать кому посылать??


Woolen   (2005-09-02 14:46:00) [1]

Возможно я не понимаю задачи, но почему бы не нажать кнопку при помощи функции mouse_event?


begin...end   (2005-09-02 13:53:00) [2]

> Руслан   (02.09.05 13:47) [2]

В ChildWindowFromPointEx должны передаваться координаты относительно родительского окна.


Руслан   (2005-09-02 13:49:00) [3]

Определил хэндл я удачно, но сообщение то не окну надо послать а дочернему компоненту, скажем кнопке, ссылке и т.д. вот я и воспользовалься еще и ChildWindowFromPoint, вот здесь то и проблемма: возвращается 0. Я пишу так:

var Pdc,Cdc: HDC;

begin
 Pdc:= WindowFromPoint(Mouse.CursorPos);  //тут возвращает хэндл
 Cdc:= ChildWindowFromPointEx(Pdc,Mouse.CursorPos,CWP_ALL);//а тут нет, тоесть 0


или я неправильно чтото делаю???


Руслан   (2005-09-02 13:47:00) [4]

Определил хэндл я удачно, но сообщение то не окну надо послать а дочернему компоненту, скажем кнопке, ссылке и т.д. вот я и воспользовалься еще и ChildWindowFromPoint, вот здесь то и проблемма: возвращается 0. Я пишу так:

var Pdc,Cdc: HDC;

begin
 Pdc:= WindowFromPoint(Mouse.CursorPos);  //тут возвращает хэндл
 Cdc:= ChildWindowFromPointEx(Pdc,Mouse.CursorPos,CWP_ALL);//а тут нет, тоесть 0


или я неправильно чтото делаю???


wildsam   (2005-09-02 12:51:00) [5]

Надо получить координаты курсора (GEtCursorPos), потом определить хэндл окна под ним (WindowFromPoint) и послать ему сообщение.


Наверх

Титульная страница Поиск, карта сайта Написать письмо