Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка сообщений в HOOKке [D5, Win95/98]


plaha999 ©   (2002-12-10 13:35:00) 

Уважаемые мастера, подскажите как мне при обработке сообщения, которое я ловлю в своем хуке узнать HWND или HANDLE того, от кого это сообщение произошло???

Я имею процедурку перехвата сообщений:

function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
begin
if code = HC_ACTION then
begin
{Проверяю, нажата ли правая кнопка мыши}
if TMsg(Pointer(lParam)^).message = WM_RBUTTONDOWN then
begin
{Здесь мне надо получить HWND или HANDLE
того, от кого это сообщение произошло}
end;
{Пытаемся передать сообщение дальше по цепочке hook-ов}
Result:= CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
end;


Если кто знает, подскажите,
не успеваю дописать научную работу :-(


plaha999   (2002-12-10 14:37:00) [1]

Если сообщение пришло от моей формы, то hWnd совпадает с hWnd формы, а если от рабочего стола, то он почему-то не равен GetDeskTopWindow: hWND;
ПОЧЕМУ???


Song   (2002-12-10 13:46:00) [2]

Вот Вы почему-то message используете, а на остальные поля записи посмотреть не хотите:

type
TMsg = packed record
hwnd: HWND;
message: UINT;
wParam: WPARAM;
lParam: LPARAM;
time: DWORD;
pt: TPoint;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо