Einzelnen Beitrag anzeigen

ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

Windows EventLog mit JEDI auslesen

  Alt 3. Jul 2013, 22:02
Moin,
ich habe es glaube ich auch schonmal in einem anderen Thema angesprochen: Ich arbeite an einem Programm welches das EventLog ausließt. Ich mache es mit der "TJvNTEventLog" Komponente aus der JVCL. Es funktioniert auch teilweiße, jedoch versteh ich etwas nicht.

Mit folgenden Code lese ich das EventLog aus (Natürlich vereinfacht und gekürzt, aber das wesentliche ist dabei):
Delphi-Quellcode:
JvLog.Active := false;
JvLog.Server := 'localhost';
JvLog.Source := 'Security'; // erfordert Admin-Rechte
JvLog.Open;

JvLog.Last;
ShowMessage(IntToStr(JvLog.EventRecord.ID));

JvLog.Close;
Jetzt bekomme ich als Ergebnis die ID 5061. Das ist die ID eines Checks, den Windows alle 5 Minuten macht. Es kann auch sein das man die ID eines anderen Events bekommt, z.B. wenn man die IDE mit Adminrechten startet, erhält man 4672.

Aber das eigentliche Problem ist folgendes. Wenn ich anstatt im Security-Log das System Log auslese, erhalte ich irgendetwas falsches:
Delphi-Quellcode:
JvLog.Active := false;
JvLog.Server := 'localhost';
JvLog.Source := 'System'; // oder "Application"
JvLog.Open;

JvLog.Last;
ShowMessage(IntToStr(JvLog.EventRecord.ID));

JvLog.Close;
Anstatt der ID 7036, erhalte ich 1073748860. Allerdings weiß ich nicht warum. Dasselbe passiert auch im Application-Log. Anstatt die ID des Avira-Eintrags 4120 erhalte ich 1073745944.

Ich verstehe einfach nicht was da schief geht. Wenn jemand die JVCL installiert hat, sowie Zeit und Lust hat, könnte derjenige das ganze vllt. mal bei seinem System ausprobieren? Dann kann ich schonmal ausschließen, das es vllt. etwas mit meinem Rechner zutun hat. Den interessant ist auch, das die Zeit, welche das JvNTEventLog liefert. Diese stimt nicht mit der Zeit unter Verwaltung>Ereignisanzeige überein. Die Zeit welche ich von der Komponente erhalte hängt immer 2h hinterher.

Danke,
Lukas

P.S. Wenn sich jemand erbarmt das ganze mal zu testen, der kann den Code oben einfach übernehmen. Allerdings muss die Abfrage des Security-Logs mit Admin-Rechten laufen.
Lukas
  Mit Zitat antworten Zitat