Форум: "Прочее";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
Внизчтение системных журналов сообщений Найти похожие ветки
← →
И. Павел © (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c