![]() |
Einträge ins Eventlog
Weiß jemand, wie ich über mein Programm eigene Einträge in das Eventlog von Windows XP eintrage? Ich möchte gerne Logeinträge teilweise darin eintragen mit einem kurzen Text, was passiert ist. Wie?
|
Re: Einträge ins Eventlog
dazu gibt es die API
![]() |
Re: Einträge ins Eventlog
Das sieht schon gut aus, aber wie benutze ich diese Funktion? Was trage ich denn bei dwEventID ein? Wenn ich das so eintrage gibt es irgendwelche komischen Fehler. Der Eintrag an sich ist vorhanden, aber wie füge ich dazu einen Text ein. Hast du vielleicht einen Beispielaufruf für mich?
|
Re: Einträge ins Eventlog
der Text wird vom Event-Viewer aufgrund der Event-Source und Event-ID aus einer DLL geladen... in diesem Text kannst du Platzhalter (in der Art von Format()/sprintf()) einbauen, die dann durch die beim Aufruf von ReportEvent angegebenen Strings ersetzt werden...
ich denke mal, du wirst nicht darum herum kommen, dich etwas in das Event-Logging einzulesen... ein guter Start wäre ![]() (ein Beispiel habe ich leider nicht zur Hand) |
Re: Einträge ins Eventlog
ich hatte mal auf meiner hp etwas auf die schnelle dazu geschrieben.
gugst du bitte hier: ![]() |
Re: Einträge ins Eventlog
Danke für die vielen schnellen Antworten. Damit sollte das hinzubekommen sein! Jetzt muss ich nur noch meinen Grips anstrengen! :gruebel:
|
Re: Einträge ins Eventlog
Wenn ich diese
Code:
Message-Datei mit mc.exe kompilieren will, bekomme ich immer die Fehler:
LanguageNames=(German=0x407:MSG00407)
MessageId=0 SymbolicName=evt_Demo Language=German Demo . Testeintrag von %1. . Zitat:
Desweiteren hätte ich da noch ein paar Fragen: Geht das auch ohne den zusätzlichen Eintrag in der Registry für mein Programm? Und geht es eventuell auch ohne diese Ressource? |
Re: Einträge ins Eventlog
So, habe es hinbekommen: Sie muss so aussehen:
Code:
Aber leider funktioniert es immer noch nicht. Meine Registryeinträge sehen so aus:
LanguageNames=(German=0x407:MSG00407)
MessageId=0x1 SymbolicName=CAT_1 Language=German Kategorie 1 . MessageId=0x100 SymbolicName=MSG_DEMO_ENTRY Language=German Testeintrag von %1. .
Code:
Und mein dazugehöriger Programmcode:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Demo]
"CategoryCount"=dword:00000001 "TypesSupported"=dword:00000000 "EventMessageFile"="E:\\Delphi\\Sourcecodes\\In_Bearbeitung\\MpuWriteEventLog\\Project1.exe" "CategoryMessageFile"="E:\\Delphi\\Sourcecodes\\In_Bearbeitung\\MpuWriteEventLog\\Project1.exe"
Delphi-Quellcode:
Ich bin etwas ratlos. :gruebel:
{$R 'EvtLogMsg.res'}
var Form1 : TForm1; implementation {$R *.dfm} const cSourceName : string = 'Application'; // wir wollen in das EventLog "Anwendungen" schreiben procedure LogMessage(typ, kategorienr: word; nachrichtnr: Cardinal; parameter1: string); var log : THandle; pmsgArray : array[0..0] of PChar; begin log := OpenEventLog(nil, pchar(cSourceName)); if log > 0 then begin try pmsgArray[0] := PChar(parameter1); if not ReportEvent(log, typ, kategorienr, nachrichtnr, nil, 1, 0, @pmsgArray, nil) then ShowMessage(SysErrorMessage(GetLastError)); finally CloseEventLog(log); end; end else ShowMessage(SysErrorMessage(GetLastError)); end; procedure TForm1.Button1Click(Sender: TObject); begin LogMessage(EVENTLOG_INFORMATION_TYPE, $1, $100, 'Hallo'); end; |
Re: Einträge ins Eventlog
Schonmal
![]() |
Re: Einträge ins Eventlog
Da geht es ums auslesen. Ich will aber was reinschreiben. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz