![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите с курсовой:
"Разработать Windows-приложение для мониторинга обращений к заданной директории/файлу. Все действия операционной системы по доступу к тому или ному файлу/директории необходимо заносить в журнал аудита расположенный в памяти, по окончанию мониторинга результаты следует заносить в текстовый файл. " Delphi я знаю средне, помогите с сутью программы - откуда программе брать данные об обращении к указанной папке? какие библиотеки подключить? |
|
#2
|
||||
|
||||
|
Собственно с дельфисорса взято когда-то.
Код:
procedure TMonDirThread.Execute;
var
HandleChange: THandle; //Handle создаваемого объекта для ожидания события
begin
//-- Создаем объект для ожидания события
HandleChange :=
FindFirstChangeNotification(
PChar(FPath), //Проверяемый каталог
False, //Подкаталоги не проверяются
FILE_NOTIFY_CHANGE_FILE_NAME + //Проверка создания/удаления/
FILE_NOTIFY_CHANGE_ATTRIBUTES); //переименования/изменения файлов
//-- При ошибке Win32Check выводит сообщение и прерывает Execute.
Win32Check(HandleChange <> INVALID_HANDLE_VALUE);
Synchronize(ThreadStart); //Сообщение о старте потока
try
//-- Цикл, пока для потока не будет выдана команда Terminate
while not Terminated do
begin
case WaitForSingleObject(HandleChange,1000) of
WAIT_FAILED: Terminate; //Ошибка, завершаем поток
WAIT_OBJECT_0: Synchronize(UpdateLog); //Сообщаем об изменении
end;
FindNextChangeNotification(HandleChange);
end;
finally
FindCloseChangeNotification(HandleChange);
end;
Synchronize(ThreadStop); //Сообщаем о завершении потока
end; ). |
|
#3
|
|||
|
|||
|
http://delphisources.ru/pages/source...ry_change.html
Что такое журнал аудита расположенный в памяти не понятно |