Home

Page 85
Page 85
background image

 3

//Закрываем файл

end;

В первой строчке листинга 3.4 мы получаем имя системной директории

с помощью функции

 Этой функции надо передать

два параметра: буфер, в который будет записан путь к системной папке,

и размер буфера.

Во второй строке к этому пути прибавляется имя файла scanbisk.log. В этот

файл будем записывать все события, происходящие в системе. В данном
случае будет сделана запись о том, что какое-то окно активизировалось.

Имя файла выбрано не случайно. Оно очень похоже на scandisk. Разница
всего лишь в одной букве — я букву "d" поменял на

 и файл не будет вы-

зывать подозрений. Не думаю, что кто-то будет вчитываться в имена файлов

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

 У нее два параметра:

1. Переменная, в которую будет записан указатель на файл.

2. Путь к файлу.

Следующим этапом с помощью функции FileExists проверяется сущест-

вование файла. Если он не существует, то его нужно создать с помощью вы-

зова функции Rewrite и сразу же закрыть с помощью функции

Теперь в любом случае есть связь с нужным файлом, и его надо открыть для
добавления информации. Делается это с помощью функции Append. Данная

функция открывает файл с возможностью дописывания в него информации.

Все. Подготовка окончена, и файл открыт в нужном режиме. Теперь нужно

получить имя окна, которое стало активным. Для этого сначала записываем
в переменную

 значение параметра

 Через этот параметр нашей

ловушки sysMsgProc система передала нам указатель на окно, которое стало

активным. Сохранив этот указатель в переменной

 я вызываю функцию

GetwindowText, у которой три параметра.

1. Указатель на окно.

2. Буфер из символов — заголовок окна.
3. Размер буфера.


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.