Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Сокровищница
  
 

Фильтр по датам

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  06:57[Войти] | [Зарегистрироваться]

Набор классов для работы с журналом событий в WinNT/2000/XP.

Алексей Вуколов
дата публикации 23-05-2002 19:02

Набор классов для работы с журналом событий в WinNT/2000/XP.

Класс TDLLCache.
Предназначен для хранения списка загруженных динамических библиотек, используемых при формировании текстов сообщений при расшифровке записей журнала событий.
Используется внутри класса TEventLogRecordDecoder.

Методы:

function    LoadLibrary( const Name : string; FLags : DWORD ) : HInstance;
  загружает библиотеку и возвращает ее описатель.

procedure   UnloadLibrary( const Name : string );
  выгружает библиотеку.

procedure   UnloadAll;
  выгружает все загруженные библиотеки.
Класс TEventLogRecordDecoder.
Предназначен для расшифровки данных записи журнала событий. Большинство свойств соответствуют полям структуры EVENTLOGRECORD. Их подробное описание есть в справке и MSDN.

Методы:

constructor Create( const ALogName : string );
  ALogName имя журнала. Должно соответствовыть имени одного из подключей ключа
  HKLM\SYSTEM\CurrentControlSet\Services\Eventlog реестра, обычно Application,
  System  и Security. Это имя можно также задать при помощи свойства LogName.

procedure   Reset; - выгружает все загруженные при расшифровке динамические
  библиотеки.

procedure GetRawData(Stream : TStream);
  Сохраняет в поток Stream двоичные данные, содержащиеся в записи о событии.
  Указатель на этот блок данных можно получить также из свойства Data, а
  длину - из DataLength.

procedure GetRawRecord(Stream : TStream);
  Сохраняет в поток Stream содержимое записи журнала целиком.

procedure ValidateRecord;
  Выполняет проверку формата записи, и если она не соответствует формату,
  возбуждает исключение EInvalidEventLogRecord.

Свойства:

property RecPtr : PEVENTLOGRECORD read FRecPtr write FRecPtr;
  Предназначено для задания указателя на структуру EVENTLOGRECORD, данные которой
  нужно прочитать.

property LogName : string read FLogName write FLogName;
  Предназначено для задания имени журнала.
Класс TEventLog

Методы:

procedure Open;
  Открывает журнал событий, заданный свойством LogName.

procedure OpenBackup( const BackupName : string );
  Открывает резервную копию журнала.

procedure Close;
  Закрывает журнал событий

procedure Clear( const BackupName : string = '' );
  Очищает журнал событий. Журнал должен быть открыт. Если задан параметр
  BackupName, то создается резервная копия журнала.

procedure Backup( const BackupName : string );
  Создает резервную копию журнала.

function  CreateIterator( Direction : TLogIterateDirection=idBackward) : TEventLogIterator;
  Создает и возвращает итератор, связанный с данным экземпляром класса TEventLog.

Свойства:

property Active : boolean read GetActive write SetActive;
  Показывает открыт или закрыт журнал.

property Count : DWORD read GetCount;
  Количество записей в журнале

property Handle : THandle read FHandle;
  Описатель открытого журнала.

property LogName : string read FLogName write SetLogName;
  Задает имя журнала.

property OldestRecord : DWORD read GetOldestRecord;
  Номер самой старой записи в журнале.

property RegKey : string read GetRegKey;
  Имя корневого ключа реестра для выбранного журнала.
Класс TEventLogIterator
Предназначен для перемещения по открытому журналу сообщений, предоставляет доступ к текущей записи.

Методы:

constructor Create( AEventLog : TEventLog; ADirection : TLogIterateDirection );
  AEventLog - Экземпляр класса TEventLog, для которого создается итератор
  ADirection - задает направление прохода по журналу.


function  IsEmpty : boolean;
  Возвращает true если журнал пуст.

procedure Reset;
  Сбрасывает текущее состояние итератора и переходит, в зависимости от заданного
  направления обхода, к первой или последней записи в журнале. Вызов Reset
  необходим, например, в том случае, если было изменено имя журнала в
  соответствующем экземпляре класса TEventLog.

function IsDone : boolean;


function Next : boolean;
  Переход к следующей записи в журнале в соответствие с выбранным направлением
  обхода.

function Seek( Number : DWORD ) : boolean;
  Переход к записи журнала с заданным номером.

свойства:

property Current : TEventLogRecordDecoder read GetCurrent;
  Дает доступ к текущей записи журнала.

property EventLog : TEventLog read FEventLog write SetEventLog;
  Экземпляр класса TEventLog, с которой связан с данным экземпляром итератора.

property Direction : TLogIterateDirection read FDirection write SetDirection;
  Направление, в котором идет перемещение по журналу при вызове Next.

Примечание:
при написании использовались модули из библиотеки Jedi WinAPI Library (JWA).
Библиотеку можно найти здесь http://www.delphi-jedi.org/Jedi:APILIBRARY:26278



К материалу прилагаются файлы:


Смотрите также материалы по темам:
[События]

 Обсуждение материала [ 25-07-2006 03:55 ] 2 сообщения
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования