Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich zapfe mit meinem c prog das eventlog von Windows an.

folgenden code habe ich bei MS gefunden:


#include <windows.h>
#include <stdio.h>

#define BUFFER_SIZE 1024*64

void DisplayEntries( )
{
HANDLE h;
EVENTLOGRECORD *pevlr;
BYTE bBuffer[BUFFER_SIZE];
DWORD dwRead, dwNeeded, dwThisRecord;

// Open the Application event log.

h = OpenEventLog( NULL, // use local computer
"Application"); // source name
if (h == NULL)
{
printf("Could not open the Application event log.");
return;
}

pevlr = (EVENTLOGRECORD *) &bBuffer;

// Get the record number of the oldest event log record.

GetOldestEventLogRecord(h, &dwThisRecord);

// Opening the event log positions the file pointer for this
// handle at the beginning of the log. Read the event log records
// sequentially until the last record has been read.

while (ReadEventLog(h, // event log handle
EVENTLOG_FORWARDS_READ | // reads forward
EVENTLOG_SEQUENTIAL_READ, // sequential read
0, // ignored for sequential reads
pevlr, // pointer to buffer
BUFFER_SIZE, // size of buffer
&dwRead, // number of bytes read
&dwNeeded)) // bytes in next record
{
while (dwRead > 0)
{
// Print the record number, event identifier, type,
// and source name.

printf("%03d Event ID: 0x%08X Event type: ",
dwThisRecord++, pevlr->EventID);

switch(pevlr->EventType)
{
case EVENTLOG_ERROR_TYPE:
printf("EVENTLOG_ERROR_TYPE\t ");
break;
case EVENTLOG_WARNING_TYPE:
printf("EVENTLOG_WARNING_TYPE\t ");
break;
case EVENTLOG_INFORMATION_TYPE:
printf("EVENTLOG_INFORMATION_TYPE ");
break;
case EVENTLOG_AUDIT_SUCCESS:
printf("EVENTLOG_AUDIT_SUCCESS\t ");
break;
case EVENTLOG_AUDIT_FAILURE:
printf("EVENTLOG_AUDIT_FAILURE\t ");
break;
default:
printf("Unknown ");
break;
}

printf("Event source: %s\n",
(LPSTR) ((LPBYTE) pevlr + sizeof(EVENTLOGRECORD)));

dwRead -= pevlr->Length;
pevlr = (EVENTLOGRECORD *)
((LPBYTE) pevlr + pevlr->Length);
}

pevlr = (EVENTLOGRECORD *) &bBuffer;
}

CloseEventLog(h);
}
[/PHP]

man kann also so ziemlich alle infos eines logeintrages anzeigen lassen, nur nicht den beschreibenden text.

also nur ID, type und source.

ich hätte jetzt gerne noch den beschreibenden text eines eintrages.

ich habe auch schon überall gesucht aber so richtig schlau bin ich da nicht geworden. das hängt irgendwie am dataoffset.

hat da jemand eine ahnung von?

Geschrieben

hallo,

ich habe nochmal dran rumgebastelt:


if ( dwNumStrings = pevlr->NumStrings )
{
pStr = (LPBYTE)pevlr + pevlr->StringOffset;
}
if(pStr)
{
DWORD i;
printf("MessageText:\n");
for ( i = 0; i < dwNumStrings; i++ )
{
sprintf(tmp_message, "%s", pStr);
strcpy(message, tmp_message);
int tmp_len = strlen((char*)pStr);
tmp_len += 1;
pStr +=tmp_len;
}
printf("%s\n", message);
}
[/PHP]

Ausgabe Beispiel mit allen ausgelesenen daten::

Event ID: 0x40FF03E9

EventType: EVENTLOG_INFORMATION_TYPE

Event source: SNMP

MessageText:

Uniprocessor Free

Auszug aus EventLog des selben ausgelesenen eintrages:

Ereignistyp: Informationen

Ereignisquelle: SNMP

Ereigniskategorie: Keine

Ereigniskennung: 1001

Datum: 25.03.2004

Zeit: 06:36:01

Benutzer: Nicht zutreffend

Computer: 1121-UDANIEL

Beschreibung:

Der SNMP-Dienst wurde gestartet.

also lese ich Uniprocessor Free aus im eventlog steht aber das der dienst gestartet wurde.

ist das eine darstellung von EventLog oder lese ich falsch aus?

es kann ja sein das der eventlog viewer das noch einmal "übersetzt".

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...