Содержание материала

** Что такое крюк? **

 

 Крюк-это точка в механизме обработки системных сообщений, где  приложение может установить подпрограмму для мониторинга трафика сообщений в

 системе и обрабатывать определенные типы Сообщений прежде, чем они достигнут целевой оконной процедуры.

 

 Чтобы использовать механизм окна крюк, программа вызывает функцию SetWindowsHookEx() API-интерфейс,  передача адреса процедуры hook, которая уведомляется, когда указанное

 событие происходит. SetWindowsHookEx() возвращает адрес ранее установленного  обработать процедуру для того же типа события. Этот адрес-это важно,

 потому что процедуры крючка такого же типа образуют своеобразную цепочку.  Windows уведомляет первую процедуру в цепочке при возникновении события,

 и каждая процедура отвечает за передачу уведомления.  Для этого процедура подключения должна вызвать CallNextHookEx() функции API,

 адрес прохождения предыдущей процедуры крюка.

 

 -- >Все системные крючки должны находиться в динамической библиотеке ссылок.

 

 ** Тип крюка, используемый в этом примере кода: **

 

 На WH_GETMESSAGE крючок позволяет приложение для мониторинга и перехвата Сообщений  о том, чтобы быть возвращены функции getmessage или PeekMessage функции.

 

 

Code:

{

 

** Hook Dll - WINHOOK.dll **

WINHOOK.dpr

      |-----WHookInt.pas

 

** Interface unit ** WHookDef.dpr

 }

 

{********** Begin WHookDef.dpr **************}

 

{ Interface unit for use with WINHOOK.DLL }

 

unit WHookDef;

 

interface

 

uses

  Windows;

 

function SetHook(WinHandle: HWND; MsgToSend: Integer): Boolean; stdcall;

function FreeHook: Boolean; stdcall;

 

implementation

 

function SetHook; external 'WINHOOK.DLL' Index 1;

function FreeHook; external 'WINHOOK.DLL' Index 2;

 

end.

 

{********** End WHookDef.dpr **************}

  

Code:

{********** Begin Winhook.dpr **************}

 

{ The project file }

 

{ WINHOOK.dll }

library Winhook;

 

uses

  WHookInt in 'Whookint.pas';

 

exports

  SetHook index 1,

  FreeHook index 2;

end.

 

{********** End Winhook.dpr **************}

  

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить