![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Можно узнать дексритор окна по его названию функцией FindWindow
Как мне узнать дескрипторы, всех компонентов в этом окне, кнопок, эдитов, чекбоксов и так далее, чтобы прям всех. |
#2
|
||||
|
||||
![]() В цикле используя GetDlgItem.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() Это работает но только в программах которые создал я, а мне надо внедрится в другую программу и как быть тут?
|
#4
|
||||
|
||||
![]() Ты на Visual Studio чтоли пишешь?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
||||
|
||||
![]() Цитата:
|
#6
|
||||
|
||||
![]() Найти все дочерние окна можно рекурсивным вызовом EnumChildWindows() или GetWindow()
...сказал, и загрустил от бесспорной своей правоты |
#7
|
||||
|
||||
![]() А как этим пользоваться дайте код работающий на примере калькулятора или блокнота
|
#8
|
||||
|
||||
![]() Код:
function EnumTaskWindows(wnd : HWND;ParentNod: TTreeNode): bool; stdcall; var buff : array[0..256] of char; NewItem : TTreeNode; begin ZeroMemory(@buff, sizeof(buff)); GetClassName(wnd, buff, 256); NewItem := Form1.TreeView1.Items.AddChild(ParentNod, buff); GetWindowText(wnd, buff, 256); NewItem.Text := NewItem.Text + ' - ' + buff; EnumChildWindows(wnd, @EnumTaskWindows, Integer(NewItem)); Result := true; end; begin EnumWindows(@EnumTaskWindows, 0); end; ...сказал, и загрустил от бесспорной своей правоты |