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

 

Возможные вариации: Любые вопросы, связанные с постановкой хука. Например "Как отследить [что-то]", "Как подменить [какое-то действие]", "Как заблокировать комбинации клавиш, как заблокировать определённые действия", "Как не дать запускаться определённым приложениям, не дать открываться определённым окнам?", "Как получить список запущенных оконных приложений?" и т.д.

 

Рабочий пример глобальной блокировки правой кнопки мыши:

DLL:

 

Code:

library Project2;

Uses Windows,Messages;

Var SysHook:HHook=0;

 

Function SysMsgProc(Code:Integer; WParam:LongInt; LParam:LongInt):LongInt; stdcall;

Var Msg:TMessage;

Begin

IF Code=HC_ACTION then

Case TMsg(Pointer(LParam)^).Message OF

  WM_RBUTTONDOWN,WM_RBUTTONUP,WM_RBUTTONDBLCLK: TMsg(Pointer(LParam)^).Message:=WM_NULL

  else Result:=CallNextHookEx(SysHook,Code,WParam,LParam);

End;

end;

 

procedure Hook(Flag:Boolean); export; stdcall;

Begin

IF Flag then SysHook:=SetWindowsHookEx(WH_GETMESSAGE,@SysMsgProc,HInstance,0) Else

Begin

  UnhookWindowsHookEx(SysHook);

  SysHook:=0;

End;

End;

 

exports Hook;

 

{$R *.res}

 

begin

end.

 

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

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

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

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


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