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

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

Найди дескриптор кнопки. [D7, XP]


Страницы:   1 2

Псарь ©   (2011-12-20 08:55:00) 

Всем привет!

Есть сторонняя программа.
Цель нажать на одну единственную кнопку в этой программе.

Что знаю:
(Узнал через WindowFromPoint)

1) Программа написана на Delphi.
2) Знаю класс главной формы программы, его title.
3) Кнопка находится на TCoolBar'e.
4) На кнопке написано "Старт".

Странности:
1) Не могу определить класс, title этой кнопки. (GetClassName, GetWindowText + WindowFromPoint).

Как обнаружить хэндл этой злосчастной кнопки?


Псарь   (2011-12-20 10:07:00) [21]


> KilkennyCat ©   (20.12.11 09:57) [4]
>
> горячий клавиш не привязан случайно к требуемой кнопке?
> решение очевидное, конечно, но вдруг проморгал.
>

Не, нету.

- - -

Ну вроде разобрался. Точно графические.
Осталось сделать эмуляцию клика в нужной точке экрана.
Написал такое:



procedure EmulClick(X, Y: LongInt);
begin
 mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0);
 mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,   X, Y, 0, 0);
end;


Работает, если навести курсор на нужную кнопку, т.е. параметры "Х" и "Y" - игнорируются.
В чем ошибка?


KilkennyCat   (2011-12-20 09:57:00) [22]

горячий клавиш не привязан случайно к требуемой кнопке? решение очевидное, конечно, но вдруг проморгал.


MBo   (2011-12-20 09:02:00) [23]

Например, TSpeedButton - неоконный контрол


Псарь   (2011-12-20 09:01:00) [24]

Сказывается мне, что эти кнопки без хэндлов, т.е. графические.
Предположительно TSpeedButton'ы.


Псарь   (2011-12-20 08:59:00) [25]

И ещё:

На TCoolBar'e находятся 3 кнопки:
"Старт" (Вот она мне и нужна), "Пауза", "Стоп".

Причем WindowFromPoint возвращается один и тот же хэндл (Одно число) для всех этих кнопок и этого  TCoolBar'а.


Страницы:   1 2

Наверх

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