type
art = (Hinweis, Warnung, Fehler, Erfolgsueberwachung, Fehlerueberwachung);
function Log(PGM, Msg, Bemerkung: string; typ: art; nr: word): boolean;
var
hEventSource: THandle;
aStr: array[0..2] of string;
w: Word;
begin
result := false;
try
hEventSource := RegisterEventSource(nil, PChar(PGM));
if hEventSource > 0 then
begin
case typ of
Fehler: w := EVENTLOG_ERROR_TYPE;
Warnung: w := EVENTLOG_WARNING_TYPE;
Erfolgsueberwachung: w := EVENTLOG_AUDIT_SUCCESS;
Fehlerueberwachung: w := EVENTLOG_AUDIT_FAILURE;
else w := EVENTLOG_INFORMATION_TYPE;
end;
aStr[0] := PGM;
aStr[1] := Msg;
aStr[2] := Bemerkung;
ReportEvent(hEventSource,
w, // Ereignistyp
0, // Ereigniskategorie
nr, // Fehlernummer
nil, // user security identifier (optional)
Length(aStr), // Anzahl der Strings im Array
0, // Größe binärer Daten (in Bytes)
Addr(aStr), // Adresse des Stringarrays
nil); // Addresse binärer Daten
DeregisterEventSource(hEventSource);
result := true;
end;
except end;
end;
// Beispielaufruf
procedure TForm1.Button1Click(Sender: TObject);
begin
Log('MeinProgramm', 'Fehler beim Testen', 'Nicht ernst nehmen',
Fehler, 123);
end;=