Autor Beitrag
n-regen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 202
Erhaltene Danke: 2



BeitragVerfasst: Di 19.09.06 17:38 
Hallo!

Gibt es eine Möglichkeit, wie man in einem Delphi-Programm auflisten kann, was Windows für Fehler gemeldet hat, also die ganzen Meldungen im Hintergrund, die man über die Ereignisanzeige auch sieht?
Also, wenn was passiert kriegt mein Prog ne Meldung.
n-regen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 202
Erhaltene Danke: 2



BeitragVerfasst: Di 19.09.06 17:46 
Ach ja:
So ruft man die Ereignisanzeige auf:
Start -> Systemsteuerung -> Verwaltung -> Ereignisanzeige
kotzekocher
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mi 20.09.06 13:37 
Ja, die stehen in der Registry unter HKLM\SYSTEM\CurrentControlSet\Services\Eventlog. Guck ma hier assarbad.net/stuff/ da hat schon Einer ein Programm zu geschrieben (eventmontray.zip)
n-regen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 202
Erhaltene Danke: 2



BeitragVerfasst: Mi 20.09.06 16:02 
Das bringt mir nichts!
Ich kann doch nicht die Milliarden Möglichkeiten, die es an Namen für die Programme und Fehler gibt 10 mal pro Sekunde durchprobieren!
Ich brauche etwas, das mir entweder
immer wenn was passiert den Programmname, Fehlertext und -code übergibt
oder
etwas, mit dem ich z.B. im Sekundentakt die neueste Meldung kriegen kann.

PS: Ich weiss, dass Windows mehr als einen Fehler pro Sekunde fabriziert.
kotzekocher
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Di 26.09.06 09:40 
Hast du dir das Programm angeguckt, was ich verlink hab?
Das reagiert doch bei Veränderungen im EventLog.
Mittels WaitForMutipleObjects(); der probiert nicht alles zehn mal pro Sekunde durch.
n-regen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 202
Erhaltene Danke: 2



BeitragVerfasst: Di 26.09.06 14:45 
Ja.
Ich habs mir angeschaut.
Aber ich brauchs so, dass ich z.B. ein MessageFenster draus machen kann: "Hinweis, SVCHOST: Modul 12345 gestartet."
Also den Typ, das Programm, den Fehler-/Hinweis-Code und -Text.
Und EventMonTray zeigt ja bloß, dass was war, nicht was.
kotzekocher
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mi 27.09.06 14:38 
Also, ich habs mal probiert und was rausgekriegt. Das neueste eventlog ist lässt sich rauskriegen mit GetNumberOfEventLogs() aus der advapi32.dll. Mit den Funktionen OpenEventLog und ReadEventLog kann man dann die Daten des Logs rauskriegen. Ist aber sehr kompliziert wenn man noch nich so die Übersicht hat.

Das Problem ist, das das System 3 Eventlogs hat (Application, System, Security), die unabhängig voneinander sind. Man muss die alle drei durchsuchen, um den neuesten Eintrag rauszufinden.

Wenn du eine etwas ältere Version von Delphi hast, kann es auch sein, dass dort die Parameter und Flags der o.g. Funktionen noch gar nicht definiert sind. Die stehen aber im PSDK. Da steht auch ein Beispiel in C++ dazu drin.

Wenn du das hast, einfach die Funktion in eventmontray an der richtigen Stelle aufrufen. Fertig.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 29.09.06 08:20 
user profile iconn-regen hat folgendes geschrieben:
Ja.
Ich habs mir angeschaut.
Aber ich brauchs so, dass ich z.B. ein MessageFenster draus machen kann: "Hinweis, SVCHOST: Modul 12345 gestartet."
Also den Typ, das Programm, den Fehler-/Hinweis-Code und -Text.
Und EventMonTray zeigt ja bloß, dass was war, nicht was.

Schon mal in Erwägung gezogen, das mal selbst zu programmieren? Das Programm von Assa ist nur eine Demo, wie es geht bzw. ein Ansatz um es selber zu erweitern.