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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2012, 08:04   #1
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
Стрелка сложный хук

Доброго времени уважаемые люди) На тему хуков много написано и спрошено, всё перерыл, клава и мышка легко перехватывается, но это всё не то что нужно... перехожу к сути вопроса:

Как, во время нажатия курсора на кнопку(компонент, пункт из меню и т д) в общем в любое поле, перехватить это событие, и вычислить название этого объекта.

п.с. не спешите ругаться или рассказывать про вызов геттекст через хэндл или про олеацц, это всё я знаю, и это всё не то, у многих компонентов на форме нет своего хндла, однако во время события, выполняемого при нажатии на этот компонент, событие знает, что именно нажали. кто в курсе, хэлп, очень надо, подробнее, и с примером) ^_^
Biohazard вне форума Ответить с цитированием
Старый 08.09.2012, 17:15   #2
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию

Прикольно, что вы задаёте этот вопрос уже не на первом форуме (http://forum.vingrad.ru/forum/topic-356153.html) и не на втором (http://www.cyberforum.ru/delphi-wina...ead647952.html). Чё, там не помогли?
DelhiProgramer вне форума Ответить с цитированием
Старый 10.09.2012, 14:26   #3
Biohazard
Пользователь
 
Регистрация: 23.02.2009
Сообщений: 78
По умолчанию

задаю одновременно всегда, так больше шансов получить хоть какой то ответ, но увы не всегда и это помогает, всё не в тему пишут, как и вы
Biohazard вне форума Ответить с цитированием
Старый 10.09.2012, 16:13   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

хахах тут хуки не нужны.
Вот так все просто:
Код:
Procedure GetCurInf;
var
HWND:Thandle;   //Хендл класса и компонента под курсором мыши
P:Tpoint;        //указатель текушая позиция мыши
Inf: array [0..256] of Char;  //массив имен классов
begin
GetCursorPos(p);
Form1.Label6.Caption:=Format(GGG,[P.X,p.Y]);
HWND:=WindowFromPoint(P);
GetClassName(HWND, Inf, SizeOf(Inf)); //получаем имя класса заносим в массив
Form1.Label1.Caption:='Имя класса: '+strpas(Inf);    //выводим имя класса из массива и показываем
Form1.Label2.Caption:='Хендл: '+IntToStr(HWND);       //поазываем хендл класса
GetWindowText(HWND,inf,255);   //получаем текст на компоненте зависящем от класса
Form1.Label3.Caption:='Название: '+strpas(Inf);     //выводим текст компонента.
end;

procedure TForm1.TimerTimer(Sender: TObject);
begin
GetCurInf;
end;
Человек_Борща вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальный хук AlienNation C# (си шарп) 2 29.07.2012 19:00
Простой хук nls Общие вопросы C/C++ 0 08.03.2012 23:48
Сложный % L6go1as Общие вопросы C/C++ 7 27.10.2011 11:15
Хук Умед Общие вопросы Delphi 3 23.07.2010 13:49
хук rpy3uH Win Api 0 30.10.2006 20:47