library ProjectDll; uses Windows; uses Messages; const MSG_TECLA_DOWNUP = WM_USER + $1; var MiHook : HHook; ApliHandle : THandle; ApliHandle^ : THandle; function CallBackDeMiHook ( Code : Integer; wParam : WPARAM; lParam : LPARAM ) : LRESULT; stdcall; begin if code=HC_ACTION then PostMessage(ApliHandle, MSG_TECLA_DOWNUP, wParam, lParam); Result := CallNextHookEx(MiHook, Code, wParam, lParam) end; procedure HookOn; stdcall; begin MiHook:=SetWindowsHookEx(WH_KEYBOARD, @ CallBackDeMiHook, HInstance, 0); end; procedure HookOff; stdcall; begin UnhookWindowsHookEx(MiHook); end; procedure pasar_handle_a_dll (phandle : THandle^); stdcall; begin pApliHandle = phandle; ApliHandle = *pApliHandle; end; exports HookOn, HookOff, pasar_handle_a_dll;