Под ловушкой понимается замена или расширение поведения системы или приложения по умолчанию на настраиваемое поведение для определенного события. Для крючков клавиатуры предпочитайте тег [keyhook]. Для привязки, связанной с git, используйте только тег [githooks]. Вместо этого для подключения веб-сервисов используйте тег [webhooks].

Что это такое?

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

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

Приемы подключения и программирования

"Перехватчик" обычно используется для описания замены указателя функции в существующей структуре данных на новый указатель функции, указывающий на новый код. Этот новый код может расширить поведение по умолчанию, вызывая старый указатель функции до или после выполнения нового кода, или новый код может заменить / отключить существующее поведение, не вызывая старый указатель.

Привязка аналогична по концепции наследованию ООП, но обычно более динамична (определяется во время выполнения), чем наследование ООП.

По сути, это место в коде, которое позволяет вам подключиться к модулю, чтобы либо обеспечить другое поведение, либо отреагировать, когда что-то происходит. Хуки часто (но не всегда) используют функции обратного вызова. Например, вы можете подключить систему событий, используяhookEvent(Events.STARTUP, myCallbackFunction). Вы передаете указатель на функцию функции hookEvent, поэтому она знает, какую функцию вызывать при возникновении события.

Как это работает?

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

  • Физическая модификация
  • Модификация среды выполнения

Связанные теги и значения

  • Для хуков, связанных с событиями клавиатуры, предпочтите тег keyhook
  • Для перехвата событий git вы должны использовать тег githooks, желательно без перехвата
  • Для подключения веб-сервисов к обратным вызовам веб-сервисов предпочтительнее использовать теги webhooks

Дополнительная информация