Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi eigenen eintrag ins ereignisprotokoll von xp? (https://www.delphipraxis.net/74092-eigenen-eintrag-ins-ereignisprotokoll-von-xp.html)

richard_boderich 27. Jul 2006 21:50


eigenen eintrag ins ereignisprotokoll von xp?
 
hallo

weis jemand ob das machbar ist und mit welchen mitteln?

richard

Luckie 27. Jul 2006 21:52

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Habe gerade dazu ein Artikel in der Tutorialsparte veröffentlicht: http://www.michael-puff.de/Developer...ortEvent.shtml

mkinzler 27. Jul 2006 21:55

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Ja, in der neuen Toolbox ist ein Artikel zu diesem Thema.
[Edit: zu langsam]

richard_boderich 27. Jul 2006 21:56

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
oh danke dir fuer deine schnelle antwort :) werd ich mir gleich ma zu gemuete fuehren.

richard

Union 28. Jul 2006 08:17

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Wenn man auf individuelle Texte verzichten kann, geht es auch noch kürzer:
Delphi-Quellcode:
EventSource := ChangeFileExt(ExtractFilename(paramstr(0)), '');
EventLog := RegisterEventSource(nil, PChar(EventSource));
if EventLog <> 0 then
begin
   PMsg := PChar('Meldung im Eventlog');
   ReportEvent(EventLog, 1, 0, 0, nil, 1, 0, @PMsg, nil);
   DeregisterEventSource(EventLog);
end;

Luckie 28. Jul 2006 12:23

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Dann hast du aber leider diesen Text
Zitat:

Die Beschreibung der Ereigniskennung ( 0 ) in ( Project1 ) wurde nicht gefunden. Der lokale Computer verfügt nicht über die zum Anzeigen der Meldungen von einem Remotecomputer erforderlichen Registrierungsinformationen oder DLL-Meldungsdateien. Möglicherweise müssen Sie das Flag /AUXSOURCE= zum Ermitteln der Beschreibung verwenden. Weitere Informationen stehen in Hilfe und Support. Ereignisinformationen: Meldung im Eventlog.
auch noch mit im EventLog stehen. :(

richard_boderich 28. Jul 2006 14:28

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
@lucki

also dein tut ist sehr informativ. ich habe aber das problem das ich variablenwerte in den
eventtext einfuegen moechte. ist es denn moeglich in die resource zu schreiben wenn die exe läuft?

richard


edit // ich brauch es so resourcensparend wie moeglich. sprich am besten keinen HDD zugriff und wenig cpu belastung

Chewie 28. Jul 2006 15:38

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Zitat:

Zitat von richard_boderich
@ich habe aber das problem das ich variablenwerte in den
eventtext einfuegen moechte. ist es denn moeglich in die resource zu schreiben wenn die exe läuft?

:shock: Dafür sind doch die Platzhalter da!

Code:
Das ist mein Text mit dem Platzhalter %1

richard_boderich 28. Jul 2006 15:50

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
@ chewie

ich hab echt kein plan wovon du redest meinst du sowas wie paramstr()?

richard

Luckie 28. Jul 2006 15:57

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
In die Ressource packst du den Text mit den Platzhaltern. Diese werden dann durch den Text ersetzt, den du in dem String-Array übergibst.

Was hast du jetzt für Probleme mit den Festplattenzugriffen? Es wird nur dann auf de festplatte zugegriffen, wenn sich jemand deinen Eintrag im Eventlog anguckt. Dann wird der Text aus der Ressource deiner Exe oder DLL geladen.

peanut 28. Jul 2006 16:14

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
@Luckie:

Toller Artikel - Mensch, hätte ich den vor 2 Monaten schon gehabt, dann hätte ich mir viel Gegrübel sparen können :-D an der Ressourcendatei saß ich am längsten...

Gruß peanut.

Luckie 28. Jul 2006 16:24

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Zitat:

Zitat von peanut
Toller Artikel - Mensch, hätte ich den vor 2 Monaten schon gehabt, dann hätte ich mir viel Gegrübel sparen können :-D

Danke. Und geanu das ist der Grund, warum ich die Artikel und Tutorials schreibe, damit der nächste es etwas einfacher hat. ;)

Und einfach mal öfters vorbeigucken http://artikel.michael-puff.de ;)

richard_boderich 28. Jul 2006 17:01

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
naja ich muss doch dann vor jeden event die resource aendern in meiner datei oder?

richard

//die demoanweindung lauft bei mir nicht. er sagt rpc server nicht verfuegbar

Chewie 28. Jul 2006 17:06

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Zitat:

Wenn deine Meldung vollständig anwendungsbestimmt sein soll, heißt dein Nachrichtentext eben nur %1.

richard_boderich 28. Jul 2006 17:11

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
wenn ich aber bei jedem eintrag einen anderen text haben will?

Chewie 28. Jul 2006 17:14

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Das, was oben steht, ist eine Antwort auf deinen Post, auch wenn die Forensoftware da offentsichtlich anderer Meinung ist :shock:

richard_boderich 28. Jul 2006 18:35

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
@ union

habe deinen code mal angepasst. er legt zwar einen eintrag im ereignislog an, jedoch traegt er die eingentliche meldung nicht ein und
ich seh nur den /auxsource text.

hab ich einen fehler drin oder funktioniert es so nicht? kann man die mc.exe auch extra bei ms downloaden ?

//quelltext

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
    EventSource:string;
    EventLog:cardinal;
    Pmsg:Pansichar;

begin
EventSource := ChangeFileExt(ExtractFilename(paramstr(0)), '');
EventLog := RegisterEventSource(nil, PChar(EventSource));
if EventLog <> 0 then
begin
   PMsg := PChar('hallo das ist eine meldung von mir!');
   ReportEvent(EventLog, 2, 0, 0, nil, 0, 0, @PMsg, nil);
   DeregisterEventSource(EventLog);
end;
end;
//quelltext ende

//meldung

Code:
Ereignistyp:   Warnung
Ereignisquelle:   Project1
Ereigniskategorie:   Keine
Ereigniskennung:   0
Datum:      28.07.2006
Zeit:      19:32:06
Benutzer:      Nicht zutreffend
Computer:   CORE
Beschreibung:
Die Beschreibung der Ereigniskennung ( 0 ) in ( Project1 ) wurde nicht gefunden. Der lokale Computer verfügt nicht über die zum Anzeigen der Meldungen von einem Remotecomputer erforderlichen Registrierungsinformationen oder DLL-Meldungsdateien. Möglicherweise müssen Sie das Flag /AUXSOURCE= zum Ermitteln der Beschreibung verwenden. Weitere Informationen stehen in Hilfe und Support. Ereignisinformationen: Die Ereignisprotokolldatei ist beschädigt..
//meldung ende


richard

[edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit]

Luckie 28. Jul 2006 19:34

Re: eigenen eintrag ins ereignisprotokoll von xp?
 
Zitat:

Zitat von richard_boderich
//die demoanweindung lauft bei mir nicht. er sagt rpc server nicht verfuegbar

Hast du im Code auch den Computernamen angepasst? Und den nötigen Zweig in die Registry erzeugt? (Reg-Datei liegt bei.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 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