Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиСП - методички / OS&SP_Lab_2.3(hooks).doc
Скачиваний:
81
Добавлен:
18.05.2015
Размер:
155.65 Кб
Скачать

Функция CallNextHookEx.

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

LRESULT CallNextHookEx(      

    HHOOK hhk,

    int nCode,

    WPARAM wParam,

    LPARAM lParam

);

Параметры

hhk

Дескриптор текущей ловушки. Приложение получает этот дескриптор после вызова функции SetWindowsHookEx.

nCode

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

wParam

Значение wParam, переданное в текущую процедуру ловушки. Значение этого параметра зависит от типа ловушки.

lParam

Значение lParam, переданное в текущую процедуру ловушки. Значение этого параметра зависит от типа ловушки.

Возвращаемое значение

Это значение, возвращённое следующей процедурой ловушки в цепочке. Текущая функция ловушки так же должна вернуть это значение. Конечно же возвращаемое значение зависит от типа ловушки. Более подробную информацию см. в описании к конкретной процедуре ловушки.

Замечания

Процедуры ловушек устанавливаются в цепочке для определённого типа ловушек. CallNextHookEx вызывает следующую ловушку в цепочке этих типов.

Вызывать CallNextHookEx не обязательно, но очень рекомендуется, иначе другие приложения, установившие ловушки просто не получат уведомлений и не смогут корректно работать.

Функция UnhookWindowsHookEx.

Функция UnhookWindowsHookEx удаляет процедуру ловушки из цепочки ловушек, установленную туда при помощи функции SetWindowsHookEx.

BOOL UnhookWindowsHookEx(

    HHOOK hhk

);

Параметры

hhk

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

Возвращаемое значение

В случае успеха, возвращаемое значение не равно нулю.

В случае ошибки, функция вернёт ноль. Для получения более подробной информации об ошибке, можно воспользоваться функцией GetLastError.

Заметки

Процедура ловушки может остаться в рабочем состоянии, если она была вызвана из другого потока, даже после того как UnhookWindowsHookEx вернёт управление. Если же никто не вызывал процедуру ловушки, то она будет удалена немедленно до того как UnhookWindowsHookEx вернёт управление.

Задания для лабораторных работ

  1. Изучить функций управления ловушками Windows;

  2. Создать простейшее приложение Win32 для установки ловушки;

  3. Написать ловушку, обеспечивающую выполнения одного функционала из следующих вариантов:

Задание

1

Ловушка на создание окон. Фильтрует создание окон с определенным заголовком и запрещает им создаваться. Фильтр задается параметром в реестре.

2

Ловушка на создание информационных сообщений. К тексту заголовка добавляет в квадратных скобках операционную систему.

3

Ловушка на создания дочерних контролов приложений. Отлавливание создания TextBox’ов и вставка туда текста «Примерный текст»

4

Ловушка на движения и клики мыши. При нажатии и движении рисовать линию.

5

Ловушка на клавиатуру. Ввести специальный лог который будет содержать приложения и лог нажатых клавиш в этом приложении.

6

Ловушка на минимизацию окон. Фильтрует окна с определенным заголовком, которые собираются минимизироваться. Фильтр задается параметром в реестре.

7

Ловушка на изменения размеров окон. Фильтрует окна с определенным заголовком и запрещает им менять свои размеры. Фильтр задается параметром в реестре.

8

Ловушка на движения и клики мыши. При двойном клике ограничивать передвижения мыши прямоугольником, при повторном двойном щелчке отменять данное ограничение.

9

Ловушка на клавиатуру. При последовательном сочетании клавиш выводить сообщения. Сочетание и сообщения хранятся в реестре.

10

Ловушка на закрытие окон. Фильтрует закрытие окон с определенным заголовком и запрещает ему завершаться. Фильтр задается параметром в реестре.

11

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

12

Ловушка на перемещения окон. Фильтрует окна с определенным заголовком и запрещает им пермещаться. Фильтр задается параметром в реестре.

Соседние файлы в папке ОСиСП - методички