![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
КАК ОПРЕДЕЛИТЬ HANDLE НАЗНАЧЕНИЯ СООБЩЕНИЯ ?!!!
moreo_xayam © (2003-11-27 13:47:00)
Вобщем, перехватывю сообщение (с помощью hook"ов)... Мне нужно узнать handle окна назначения этого сообщения...
ОТВЕТЬЕ КТО-НИБУДЬ!
LWait (2003-12-02 00:27:00) [1]
у хука CALLWNDPPOC похоже
type
PCWPSTRUCT = ^CWPSTRUCT;
CWPSTRUCT = packed record
lParam: LPARAM;
wParam: WPARAM;
message: UINT;
hwnd: HWND;
end;
function HookProc(nCode: integer; wp: Wparam; lp: LParam): LRESULT; stdcall;
var m: PCWPSTRUCT;
begin
if nCode=HC_ACTION then
begin
m:=PCWPSTRUCT(lp);
m.hwnd - вот и хэндл!
end;
Result := CallNextHookEx(HookHandle, nCode, wP, lP);
end;
Simon (2003-12-01 22:21:00) [2]
Хуки бывают разные... но в каждый из них приходит само сообщение, просто в некоторые не в том виде, который хотелось бы. В WH_GetMessge, например, сообщение приходит в "удобном" виде:
function HookProc(nCode: integer; wp: Wparam; lp: LParam): LRESULT; stdcall;
type TPntMsg = ^MSG; //F1
var m: TPntMsg;
begin
if nCode=HC_ACTION then
begin
m:=TPntMsg(lp);
m.hwnd - вот и хэндл!
end;
Result := CallNextHookEx(HookHandle, nCode, wP, lP);
end;
В других типах ловушек по другому, в хэлпе всё есть