![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти HWND у TSpeedButton в чужом приложении? [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
comwad © (2004-01-30 14:01:00)Добрых суток, ALL !
Используется код для просмотра имен и классов компонентов в
ЧУЖОМ приложении.
var
wnd, TheChildHandle: HWND;
ButtonCaption: Array[0..NameLength] of Char;
ButtonCaptionN: Array[0..NameLength] of Char;
wnd := FindWindow(nil, PAnsiChar(NameApp));
if wnd 0 then
begin
GetClassName(wnd, ButtonCaption, NameLength);
GetWindowText(wnd, ButtonCaptionN, NameLength);
Memo1.Lines.Add(String(ButtonCaption)+' '+IntToStr(TheChildHandle)+' Name:'+String(ButtonCaptionN));
End;
Находятся без проблем компоненты классов, находящиеся в иерархии ... TComponent-TControl-tWinControl
:TButton,TBitBtn и т.д.
Проблема заключается в том - как найти HWND у TSpeedButton,который имеет иерархию
TComponent-TControl-tGraphicControlи TMainMenu?
Кстати как видно - с первой часть проблемы разобрался - всем спасибо!
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1074063655&n=5
comwad (2004-02-04 13:29:00) [1]Все работает .
Всем спасибо.
SendMessage(bar, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(5,5));
SendMessage(bar, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(5,5));
comwad (2004-01-30 15:49:00) [2]Непонятно,если несколько SpeedButton на ToolBar,
каким методом вычислить нужный SpeedButton ?
BiN (2004-01-30 15:08:00) [3]...вдогонку к [6]
Прошу прощения за непроверненную инфомацию :(
скорее здесь подойдет TB_SETSTATE и TBSTATE_PRESSED, но и то - для tool-, а не для speedbutton
BiN (2004-01-30 14:51:00) [4]WM_KEYDOWN на тулбаре
MBo (2004-01-30 14:48:00) [5]см. Toolbar Messages
comwad (2004-01-30 14:41:00) [6]Хотел бы задать свой вопрос немного по-другому.
Имеются ToolBar c TSpeedButton.
ToolBar имеет дискриптор,а SpeedButton нет.
Можно ли как-то произвести "нажатие" на один из SpeedButton , расположенный на
ToolBar через HWND этого ToolBar?
Типа, что работает с имеющими Handle TWinControl-ами:
SendMessage(TheChildHandle,WM_LButtonDown,1,1);
SendMessage(TheChildHandle,WM_LButtonUP,1,1);
Или это в принципе невозможно?
MBo (2004-01-30 14:26:00) [7]да, GetMenu может пригодиться.
Ihor Osov'yak (2004-01-30 14:22:00) [8]да и теоритически также...
MBo (2004-01-30 14:12:00) [9]HWND у TSpeedButton найти трудно... Практически невозможно...
Ведь ты иерархию привел - а разобрался, что она значит?
Да и с TMainMenu не выйдет