Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2011, 20:59   #1
Denutrror
Пользователь
 
Регистрация: 18.08.2010
Сообщений: 59
Сообщение Имя, Handle и class объектов, такие же как и у формы в которой они расположенны.

Вот какая проблема:
Есть приложение (чужое), в этом приложении есть всякие кнопочки, едиты и прочие объекты. Мне нужно получить Handl`ы этих объектов, чтобы проводить с ними всякие манипуляции (тыкать, перемещать и т.п). {Ну это не важно.}

Суть проблемы в следующем:
Используя нижеследующий код получаю Handle формы, но когда пытаюсь получить Handle объекта лежащего на этой форме, опять получаю Handle формы.

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  H: HWND;
  P: TPoint;

begin
  GetCursorPos(P);
  H := WindowFromPoint(P);
end;
В чём проблема и как получить хэндлы этих объектов??

P.S. С другими формами и объектами всё прекрасно работает.....
Denutrror вне форума Ответить с цитированием
Старый 29.12.2011, 21:06   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы уверены что эта форма не использует легковесные компоненты?(которые просто рисуются на родителе)
например Java-Swing-GUI или в играх.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.12.2011, 21:19   #3
Denutrror
Пользователь
 
Регистрация: 18.08.2010
Сообщений: 59
По умолчанию

Пепел Феникса, у меня были мысли что все объекты попросту нарисованы на форме. И программа реагирует не на нажатие допустим кнопки, а на нажатие в определённой области формы.
Но я не знаю как это точно узнать.

Подскажите пожалуйста.
Denutrror вне форума Ответить с цитированием
Старый 01.01.2012, 04:15   #4
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Я бы использовал
Код:
ChildWindowFromPoint 
или
EnumChildWindows
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 01.01.2012, 04:20   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showpost....83&postcount=8
проверьте через нее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.01.2012, 16:24   #6
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от Denutrror Посмотреть сообщение
Пепел Феникса, у меня были мысли что все объекты попросту нарисованы на форме. И программа реагирует не на нажатие допустим кнопки, а на нажатие в определённой области формы.
Но я не знаю как это точно узнать.

Подскажите пожалуйста.
Если они могут принимать фокус ввода, значит они окна и можно узнать их Handle
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 01.01.2012, 16:48   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Если они могут принимать фокус ввода, значит они окна и можно узнать их Handle
ни черта подобного.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.01.2012, 23:10   #8
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ни черта подобного.
Глупо было бы отрисовывать элементы управления и создавать вид, что это элементы управления (извиняюсь за тавтологию).
Хотелось бы, чтобы Вы привели пример (обосновали).

Denutrror, прежде чем писать код, надо вначале удостоверится другими программами, что данные эл. управления это действительно окна.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 01.01.2012, 23:32   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Хотелось бы, чтобы Вы привели пример (обосновали).
вообще, на вкус и цвет...
мне лично они более нравятся, такого рода вещи.
примеры:
Java-GUI-Swing
в играх.
браузеры.

так же есть одна ещь которую на них делать легче, это полупрозрачность отдельный "контролов", что в винде с тяжелыми контролами делать не просто.
Цитата:
Denutrror, прежде чем писать код, надо вначале удостоверится другими программами, что данные эл. управления это действительно окна.
программу я дал.
так же с Делфи(раньше по крайней мере) поставлялась WinSight32
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 01.01.2012 в 23:39.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как зная ProcessID получить Handle главной формы? NikLik Win Api 8 27.08.2021 21:29
анимированные аватары - они захватили и это доменное имя) vedro-compota Свободное общение 12 09.04.2011 10:24
Как узнать handle окна имея handle обного из его компонентов SeRhy Win Api 2 18.10.2009 19:31
Как получить handle главного окна, зная имя приложения? Altera Win Api 8 22.12.2008 18:52
Как в dbgrideh получить имя поля той колонки, по заголовку которой Вы щелкнули???? zimmion БД в Delphi 4 04.03.2008 15:02