Auslesen des Ereignisprotokolls/EventLog



  • Hallo,

    ich habe folgendes Problem und zwar habe ich zur Aufgabe bekommen den EventLog
    (das Ereignisprotokoll) auszulesen via C++ Programm.

    Ich hab mich dem endsprechend etwas schlau gemacht und herraus gefunden das es
    eine Klasse von Microsoft gibt mit der dies möglich sein soll , allerdings Funktionieren
    dabei nicht mal die Besipiel Programme.

    Nun meine Frage , hätte jemand einen Tipp , eine Idee oder ein Beispiel für mich
    wie ein Programm aussehen könnte mit dem ich aus dem EventLog lesen und ggf
    das gelesene auch irgend wo abspeichern kann?

    Link
    Hier habe ich die Beispiele zu der Klasse her , die allerdings nicht Funktionirt haben,
    warum auch immer o.O 😕 .

    Über hilfe währe ich dankbar.

    mfg PrinzV



  • Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Was willst du denn genau machen? Die Logs auslesen und in einem Fenster anzeigen? Oder auslesen und neu abspeichern oder was?
    Und einfach zu sagen das die Klassen nicht gehen ist bissel einfach 😉 warum geht sie nicht? Was ist mit Fehlermeldungen oder Code?
    So wird man dir schwer helfen können.

    MfG schirrmie



  • Also es ist so das ich in C/C++ noch nicht so die Erfahrung habe bis auf eine
    Grundschulung (in der Klassen aber auch noch nicht enthalten waren). Nun hab
    ich von meijner Abteilung aufgetragen bekommen , ein Programm zuschreiben was
    den Eventlog nach bestimmten Stichwörter zB. Login oder etwas derartiges durchsucht.

    Soll darauf hin die such Ergebnisse ausgeben können und alle oder bestimmte
    an einem Belibigen Ort , möglich als .txt abspeichern. Was so schon normal nicht
    möglich , ich kann aussem EventLog zwar Abspeichern wann was Passiert ist aber
    nicht denn Inhalt dieser Meldung.

    Nun wollte ich ersteinmal mir einen Zugriff auf den Eventlog verschaffen in dem
    ich ein Beispiel von Microsoft verwende was ich auf ihrer Seite fand:

    #using "System.dll"
    using namespace System;
    using namespace System::Diagnostics;
    using namespace System::Threading;
    int main()
    {
    
       // Create the source, if it does not already exist.
       if (  !EventLog::SourceExists( "MySource" ) )
       {
          EventLog::CreateEventSource( "MySource", "MyNewLog" );
          Console::WriteLine( "CreatingEventSource" );
       }
    
       // Create an EventLog instance and assign its source.
       EventLog^ myLog = gcnew EventLog;
       myLog->Source = "MySource";
    
       // Write an informational entry to the event log.    
       myLog->WriteEntry( "Writing to event log." );
    }
    

    Das erste Problem war , das die System.dll nicht vorhanden war , also habe ich
    sie mir aus dem Net besorgt und zunächst im System und System32 Order gelegt ,
    was beides Fehler zur Folge hatte , also legte ich sie direkt ins Projekt und
    Band sie daraus ein.

    Wenn ich nun das Programm ausführen möchte gibt es diese Meldung:

    Bild

    mit der ich nicht wirklich etwas Anfangen kann , zumal der Fehler scheinbar auf
    eine .c Datein (crtexe.c) verweisst die Schreibgeschützt ist.

    Genauer Zeigt der liebe kleine grüne Pfeil auf

    #else  /* WPRFLAG */
                __initenv = envp;
                mainret = main(argc, argv, envp); <-------------
    

    In der crtexe.c Datei und auf das

    int main()
    

    in dem Beispiel Code von Microsoft.

    Ich dachte mir eben , das ich ersteinmal Überhaupt zugriff auf den Eventlog
    bräcuhte um weiter vor zugehen.



  • Ok ich habe es Mitlerweile hinbekommen , in einem eigenen "Verzeichnis" im EventLog
    zu schreiben. Aber ich habe immer noch keine Idee wie ich aus den bestehnden
    3 Verzeichnissen darin , etwas Auslesen kann. Hätte vll. jemand eine Idee wie
    man das machen könnte?



  • Dir ist klar, dass das .NET C# Code ist und keine WinAPI?



  • Mir ist klar das das .net code ist , ich hab es ja auch nicht hier her gepackt
    das hat ein Bot hierher verschoben. Aber ich währe genauso froh über lösungs
    vorschläge wie man den Eventlog aufliest in jeder anderen C++ Version , meinet
    wegen auch nur C es sollte nur eine der Beiden Sprachen sein.

    In VB zB. hab ich etwas Gefunden was gehn könnte , aber das war nicht mein Aufgabenbereich.

    Und wieso der Bot das hierher vershcoben hat weiß ich auch nicht , aufeinmal
    stand es hier.



  • Jaja, der doofe Bot 😃 Falls du ihn siehst, sag ihm mal dass er dich ins .NET-Forum verschieben soll 🙂

    Wie hast du eigentlich mit der Rechtschreibung einen Job bekommen 😕



  • Rechtschreibung ist nicht alles , kommt aufs Köpfchen an.Ausserdem bin ich etwas
    im Stress und beim Schreiben nicht immer ganz bei der Sache , da ich das nur neben
    her mache und mich sonst mehr auf andere Dinge konzentriere.

    Zudem ist eine Rechtschreibschwäche nichts soo Schlimmes dafür gibt es ja Word
    wenns wichtig ist. Solange wie das stimmt , was stimmen soll ist alles ok.


Anmelden zum Antworten