N
niello
Мне необходимо получить перехват на окно, и если окно нажато в 1окне() значит передаю нажатие клавиши другому окну, делаю длл вот так :
Код:
procedure SetDllWindow1(wnd:hwnd);
begin
DllWindow1:=wnd;
end;
procedure SetDllWindow2(wnd:hwnd);
begin
DllWindow2:=wnd;
end;
function KeyboardProc(code : integer; wParam : word;
lParam : longint) : longint; stdcall;
begin
//Проверяем сообщение
Result:=CallNextHookEx(SysHook, Code, wParam, lParam);// сообщение не обрабатывать
if (DllWindow1<>0)and(DllWindow2<>0)then
begin
//Получаем идентификатор окна, сгенерировавшего сообщение
DllPromo:=TMsg(Pointer(lParam)^).hwnd;
if DllPromo=DllWindow1 then
begin
PostMessage(DllWindow2,TMsg(Pointer(lParam)^).message,Code,0);
end;
if DllPromo=DllWindow2 then
begin
PostMessage(DllWindow1,TMsg(Pointer(lParam)^).message,Code,0);
end;
end;
end;
exports KeyboardProc;
exports SetDllWindow2,SetDllWindow1;