Home » Tipps & Tricks » Sonstiges » Sonstiges » Eintrag in die Ereignisanzeige schreiben

Eintrag in die Ereignisanzeige schreiben

function TForm1.ErrorLog(app, msg: string; typ, fehlernr: integer): boolean;
var
  hEventSource: THANDLE;
  sstring: Array [0..1] of String;
  ftyp: word;
begin
  hEventSource := RegisterEventSource(nil, PChar(app));

  case typ of
    0: ftyp:=EVENTLOG_ERROR_TYPE;         // Fehler
    1: ftyp:=EVENTLOG_WARNING_TYPE;       // Warnung
    2: ftyp:=EVENTLOG_INFORMATION_TYPE;   // Hinweis
    3: ftyp:=EVENTLOG_AUDIT_SUCCESS;      // Success Audit event
    4: ftyp:=EVENTLOG_AUDIT_FAILURE;      // Failure Audit event
  end;

  if hEventSource > 0 then
  begin
    sString[0] := app;  // application
    sString[1] := Msg;  // message
    ReportEvent(hEventSource,
                 ftyp,  // event typ
                    1,  // event category
             fehlernr,  // event identifier
                  nil,  // user security identifier (optional)
                    2,  // number of strings to merge msg
                    0,  // size of binary data, in bytes
             @sString,  // array of strings to merge with msg
                  nil); // address of binary data
    DeregisterEventSource(hEventSource);
  end;
end;

Beispielaufruf:

procedure TForm1.Button1Click(Sender: TObject);
begin
   ErrorLog('Mein Programm', 'Fehler beim Aufruf von...', 0, 1234);
end;