Возможные вариации: Любые вопросы, связанные с постановкой хука. Например "Как отследить [что-то]", "Как подменить [какое-то действие]", "Как заблокировать комбинации клавиш, как заблокировать определённые действия", "Как не дать запускаться определённым приложениям, не дать открываться определённым окнам?", "Как получить список запущенных оконных приложений?" и т.д.
Рабочий пример глобальной блокировки правой кнопки мыши:
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. |
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!