// Es wird ein Eintrag in "Anwendung" der Ereignisanzeige des Computers
// geschrieben. Die Fehlernummer ist hier reine Information und noch nicht
// mit einer Fehlertabelle verknüpft.


// Getestet mit D4 unter XP

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;=



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke