Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Как найти HWND у TSpeedButton в чужом приложении?   Найти похожие ветки 

 
comwad ©   (2004-01-30 14:01) [0]

Добрых суток, 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://delphimaster.net/view/4-1074063655/


 
MBo ©   (2004-01-30 14:12) [1]

HWND у TSpeedButton найти трудно... Практически невозможно...

Ведь ты иерархию привел - а разобрался, что она значит?

Да и с TMainMenu не выйдет


 
Ihor Osov'yak ©   (2004-01-30 14:22) [2]

да и теоритически также...


 
MBo ©   (2004-01-30 14:26) [3]

да, GetMenu может пригодиться.


 
comwad ©   (2004-01-30 14:41) [4]

Хотел бы задать свой вопрос немного по-другому.
Имеются 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:48) [5]

см. Toolbar Messages


 
BiN ©   (2004-01-30 14:51) [6]

WM_KEYDOWN на тулбаре


 
BiN ©   (2004-01-30 15:08) [7]

...вдогонку к [6]
Прошу прощения за непроверненную инфомацию :(

скорее здесь подойдет TB_SETSTATE и TBSTATE_PRESSED, но и то - для tool-, а не для speedbutton


 
comwad ©   (2004-01-30 15:49) [8]

Непонятно,если несколько SpeedButton на ToolBar,
каким методом вычислить нужный SpeedButton ?


 
comwad ©   (2004-02-04 13:29) [9]

Все работает .
Всем спасибо.

SendMessage(bar, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(5,5));
SendMessage(bar, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(5,5));



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
3-1081771900
Lamer2
2004-04-12 16:11
2004.04.11
Запрос


4-1079425476
bg8
2004-03-16 11:24
2004.04.11
Установка приоритета приложения


14-1081935442
Отто
2004-04-14 13:37
2004.04.11
Как программно включить компьютер?


3-1081362373
Swimmer
2004-04-07 22:26
2004.04.11
Какое ядро БД легче: BDE, dbExpress или ADO?


1-1082884106
Omen
2004-04-25 13:08
2004.04.11
Прозрачный ListBox