Создание системных ловушек Windows на Borland C++ Builder
ОГЛАВЛЕНИЕ
Для начала определим, что именно мы хотим сделать.
Цель: написать программу, которая будет вызывать хранитель экрана при перемещении курсора мыши в правый верхний угол и выдавать звуковой сигнал через встроенный динамик при переключении языка с клавиатуры.
Предполагается, что такая программа должна иметь небольшой размер. Поэтому будем писать её с использованием только WIN API.
Понятие ловушки.
Ловушка (hook) - это механизм, который позволяет производить мониторинг сообщений системы и обрабатывать их до того как они достигнут целевой оконной процедуры.
Для обработки сообщений пишется специальная функция (Hook Procedure). Для начала срабатывания ловушки эту функцию следует специальным образом "подключить" к системе.
Если надо отслеживать сообщения всех потоков, а не только текущего, то ловушка должна быть глобальной. В этом случае функция ловушки должна находиться в DLL.
Таким образом, задача разбивается на две части:
- Написание DLL c функциями ловушки (их будет две: одна для клавиатуры, другая для мыши).
- Написание приложения, которое установит ловушку.