Программа записи действий пользователя

В новом году открываю новую рубрику — код месяца! В этом цикле статей ежемесячно буду публиковать свои коды различных программ и модулей на языке программирования Delphi под систему Windows.

В январе рассмотрим пример написания программы мониторинга действий пользователя в операционной системе семейства Windows. Программа записывает в лог файл мониторинг запуска программ (процессов), открытия окон, буфера обмена, открытия страниц интернета, подключения съемных устройств, включение и выключение компьютера.

Ну что ж начнем, для написания данной программы понадобится создать стандартное окно формы, добавить на него 4 таймера и 1 поле мемо, в uses необходимо помимо стандартных модулей подключить TlHelp32, PsAPI для работы с процессами

далее понадобится добавить типы данных для мониторинга дисков

теперь в класс формы в приватную и защищенную секцию добавляем следующий код, процедуры будут рассмотрены далее. Также на форму понадобится добавить 4 таймера и 1 Мемо поле. В переменные добавить строковые переменные для хранения текста мониторинга окон и буфера обмена и 4 строковых листа для хранения и сравнивания полученных данных.

далее переходим к секции реализации кода, первая функция получает дату и время наступления регистрируемого события

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

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

теперь добавляем процедуру записи в поле мемо информации об изменениях в конфигурации дисков в системе (подключение и отключение)

далее приведена процедура записывающая информацию о выключении компьютера

далее процедура установки стартовых параметров при запуске программы. Скрытие окна программы, горячие клавиши, создание папки для записи логов, создание строковых листов, и получение стартовых данных

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

далее аналогичным образом получается и анализируется список процессов

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

еще один таймер следит за буфером обмена

далее идет процедура отключения горячих клавиш

ну вот собственно и всё, основная идея изложена. Программу можно добавить в автозапуск, она будет мониторить события в системе в скрытом режиме. Подобный функционал реализован, например, в программе Infowatch и возможно других программах. Но теперь у нас есть собственная разработка для мониторинга событий системы. Данный код можно дополнить другими необходимыми функциями.


Опубликовано

в

,

Изменено