|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Reading the Event Log
The following code sample reads all the records in the Application logfile and displays the event identifier, event type, and source name for each event log entry.
EVENTLOGRECORD *pevlr; BYTE bBuffer[BUFFER_SIZE]; DWORD dwRead, dwNeeded, cRecords, dwThisRecord = 0; /* Open the Application event log. */ h = OpenEventLog(NULL, /* uses local computer */ "Application"); /* source name */ if (h == NULL) ErrorExit("could not open Application event log"); pevlr = (EVENTLOGRECORD *) &bBuffer; /* * Opening the event log positions the file pointer
* for this handle at the beginning of the log. * * Read records sequentially until there * are no more. */ while (ReadEventLog(h, /* event log handle */ EVENTLOG_FORWARDS_READ | /* reads forward */ EVENTLOG_SEQUENTIAL_READ, /* sequential read */ 0, /* ignored for sequential reads */ pevlr, /* address of buffer */
BUFFER_SIZE, /* size of buffer */ &dwRead, /* count of bytes read */ &dwNeeded)) { /* bytes in next record */ while (dwRead > 0) { /* * Print the event ID, type, and source name. * The source name is just past the end of the * formal structure. */ printf("%02d Event ID: 0x%08X ",
dwThisRecord++, pevlr->EventID); printf("EventType: %d Source: %s\n", pevlr->EventType, (LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD))); dwRead -= pevlr->Length; pevlr = (EVENTLOGRECORD *) ((LPBYTE) pevlr + pevlr->Length); } pevlr = (EVENTLOGRECORD *) &bBuffer; } CloseEventLog(h);
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Чтение Бревна Случая
Кодовый образец следующего читает все записи в Прикладном logfile и отображает идентификатор случая, типа случая, и источник называет в честь каждого регистрационного входа случая.
EVENTLOGRECORD *pevlr; БАЙТ bBuffer[BUFFER_SIZE]; DWORD dwRead, dwNeeded, cRecords, dwThisRecord = 0; /* Откройте случай Приложения log. */ h = OpenEventLog(НЕДЕЙСТВИТЕЛЬНЫЙ, /* использует локальный компьютер */ "Приложение"); /* исходное имя */ если (h == НЕДЕЙСТВИТЕЛЬНЫЙ) ErrorExit("could не бревно случая открытого Приложения"); pevlr = (EVENTLOGRECORD *) &bBuffer; /* * Открывая регистрационные позиции случая файловый указатель
* для этой ручки в начале бревна. * * Прочитайте записи последовательно до там * не - больше. */ пока (ReadEventLog(h, /* случай регистрировать оперировать */ EVENTLOG_FORWARDS_READ | /* форвард reads */ EVENTLOG_SEQUENTIAL_READ, /* последовательный читать */ 0, /* проигнорированное для последовательного читает */ pevlr, /* адресовать буфера */
BUFFER_SIZE, /* размер буфера */ &dwRead, /* счет прочитанных байтов */ &dwNeeded)) { /* байты в следующей записи */ пока (dwRead > 0) { /* * Напечатайте случай ID, набирайте, и исходное имя. * Исходное имя является точным прошлым конец the * формальная структура. */ printf("%02d Случай ID: 0x%08X ",
dwThisRecord++, pevlr->EventID); printf("EventType: %d Источник: %s\n", pevlr->EventType, (LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD))); dwRead -= pevlr->Length; pevlr = (EVENTLOGRECORD *) ((LPBYTE) pevlr + pevlr->Length); } pevlr = (EVENTLOGRECORD *) &bBuffer; } CloseEventLog(h);
|
|
|
|
| |