Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.28;
Скачать: CL | DM;

Вниз

чтение системных журналов сообщений   Найти похожие ветки 

 
И. Павел ©   (2011-05-05 15:41) [0]

Здравствуйте.
Я хочу прочитать два системных журнала сообщений: system и security и записать все их сообщения в строку для дальнейшей обработки. Я могу получить все сообщения этих журналов, коды этих сообщений, даты их создания и набор  связанных с сообщением строк данных (в конце поста привел код того, как я это делаю). Но строки данных, привязанные к сообщению не содержат пояснений, что каждая из этих строк из себя представляет. Если выводить один тип сообщений, то можно определить, какие данные содержит строка с каждым номером, но ведь этих сообщений очень много.

Подскажите, пожалуйста, можно ли где-то в системе найти пояснения ко всем строкам данных в конце PEVENTLOGRECORD и как-нибудь выводить эти строки с пояснениями, т.е. не так:
pavel
mygroup
C:\1.exe

а так:
Логин: pavel
Пароль: mygroup
запущенная программа: C:\1.exe

Заранее спасибо.

PS: вот код того, как я сейчас читаю сообщения:

 h := OpenEventLog(nil, PAnsiChar(JurnalName));
 ...
 pevlr := PEVENTLOGRECORD(@bBuffer);
 while (ReadEventLog(h,
                     EVENTLOG_BACKWARDS_READ +
                     EVENTLOG_SEQUENTIAL_READ,
                     0,
                     pevlr,
                     SizeOf(bBuffer),
                     dwRead,
                     dwNeeded)) do
 begin
   while (dwRead > 0) do
   begin
     AddOffset := 0;
     ...
     if pevlr.EventID = 4689  //сообщение о создании процесса
     then
     begin
       s := s + "Создание процесса"#13#10;
       s := s + "Время: " + FormatDateTime("hh":"nn":"ss dd"."mm"."yyyy", EvDate) + #13#10;
       //НАЧИНАЮ СЧИТЫВАТЬ СТРОКИ С ДАННЫМИ
       for i := 1 to pevlr^.NumStrings do
       begin
         pevstr := LPWSTR(LPSTR(pevlr) + pevlr^.StringOffset + AddOffset);
         if i = 2 then s := s + "Учетная запись: " + String(PChar(pevstr)) + #13#10;
         if i = 3 then s := s + "Домен: " + String(PChar(pevstr)) + #13#10;
         if i = 7 then
         begin
           s := s + "Имя: " + String(PChar(pevstr)) + #13#10;
           break;
         end;
         AddOffset := AddOffset + StrLen(PChar(pevstr)) + 1;
       end;
       s := s + "***"#13#10;
     end;

     dwRead := dwRead - pevlr^.Length;
     pevlr  := PEVENTLOGRECORD(LPSTR(pevlr) + pevlr^.Length);
   end;
   pevlr := PEVENTLOGRECORD(@bBuffer);
 end;
 CloseEventLog(h);


 
OW ©   (2011-05-05 15:50) [1]

http://rouse.drkb.ru/winapi.php
Работа с системным логом событий.
смотрел?


 
И. Павел ©   (2011-05-05 16:59) [2]


> OW ©   (05.05.11 15:50) [1]

Спасибо. Это я еще не смотрел. Сейчас буду разбираться.



Страницы: 1 вся ветка

Текущий архив: 2011.08.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
15-1304220544
PiterPen
2011-05-01 07:29
2011.08.28
Delphi x64


2-1305274898
Panky
2011-05-13 12:21
2011.08.28
перемешение по таблице


11-1236688179
Dy1
2009-03-10 15:29
2011.08.28
вид DateTimePicker-а


2-1305650677
Артём
2011-05-17 20:44
2011.08.28
Копирование значения в CheckListBox -> ListBox


2-1305542929
Соня
2011-05-16 14:48
2011.08.28
Delphi. Соединение с БД MS SQL Server