Здравствуйте! Есть задача передать сообщение чужому окну. Для этого соорудил ловушку.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | library WinFocus;
{$R *.res}
uses
windows,
Messages;
var SysHook: hHook = 0 ;
WindowHandle: HWnd;
function GetWinHandle:Hwnd export; stdcall;
begin
result:=WindowHandle;
end ;
function CBTProc(Code: Integer ; wParam: WParam; LParam: LParam): integer ;
begin
WindowHandle:=GetForegroundWindow;
result:=CallNexthookEx(SysHook, code, Wparam, LParam);
end ;
procedure RunHook(wnd:Hwnd) export; stdcall;
begin
SysHook := SetWindowsHookEx(HCBT_SETFOCUS, @CBTProc, hInstance, 0 );
end ;
procedure StopHook export; stdcall;
begin
UnhookWindowsHookEx(SysHook);
SysHook:= 0 ;
end ;
exports StopHook, RunHook, GetWinHandle;
end .
|
Но эта ловушка ловит почему-то только мое окно и не реагирует на остальные. Что я делаю не так?