Eventlog auslesen

  • Guten Morgen, da ich ein Bisschen Faul bin wollte ich den Eventlog auslesen um genaue Zeiten zubekommen, wann ich gearbeitet habe.

    Meine ersten Versuche schön und gut, aber die Liste bleibt leer.

    hier mein Script

    Spoiler anzeigen
    [autoit]

    #include <EventLog.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>

    $EventLog = _EventLog__Open ("", "System") ;Systemprotokolle auslesen
    $EventlogCount = _EventLog__Count ($EventLog)

    #Region ### START Koda GUI section ### Form=D:\Documents and Settings\ahirtz\Desktop\Scripts\Koda designer\Forms\moep.kxf
    $Form1 = GUICreate("Eventlog Start", 578, 301, 189, 125)
    $ListView1 = GUICtrlCreateListView("Datum|Event-ID", 8, 4, 560, 286, BitOR($LVS_REPORT,$LVS_SORTDESCENDING))
    GUICtrlSendMsg(-1, 0x101E, 0, 150)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to $EventlogCount
    $aEvent = _EventLog__Read($hEventLog, True, True)
    If $aEvent[6] = 6006 OR 6005 Then
    GUICtrlCreateListViewItem($aEvent[2]&"|"&$aevent[6], $ListView1)
    EndIf
    Next
    _EventLog__Close($hEventLog)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $ListView1
    EndSwitch
    WEnd

    [/autoit]

    Danke für eure Hilfe.

    Einmal editiert, zuletzt von Schickedim (1. August 2012 um 09:49)

  • Du hast einen Fehler bei deinen Variablen, bei _EventLog__Open nennt du die Variable $EventLog im restlichen Code dann immer $hEventLog.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Du hast einen Fehler bei deinen Variablen, bei _EventLog__Open nennt du die Variable $EventLog im restlichen Code dann immer $hEventLog.


    Danke Chip. Difinitiv Fehler 30, 30cm hinterm Bildschirm.

    Funktioniert sogut wie, leider funktioniert die Abfrage nicht mit 6005 or 6006. Er spuckt mir viel zu viel aus.

    noch eine Idee?

    Spoiler anzeigen
    [autoit]

    #include <EventLog.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>

    $EventLog = _EventLog__Open ("", "System") ;Systemprotokolle auslesen
    $EventlogCount = _EventLog__Count ($EventLog)

    #Region ### START Koda GUI section ### Form=D:\Documents and Settings\ahirtz\Desktop\Scripts\Koda designer\Forms\moep.kxf
    $Form1 = GUICreate("Eventlog Start", 578, 301, 189, 125)
    $ListView1 = GUICtrlCreateListView("Datum|Uhrzeit|Event-ID", 8, 4, 560, 286)
    GUICtrlSendMsg(-1, 0x101E, 0, 150)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to $EventlogCount
    $aEvent = _EventLog__Read($EventLog, True, True)
    If $aEvent[6] = 6005 or 6006 Then
    GUICtrlCreateListViewItem($aEvent[2]&"|"&$aevent[3]&"|"&$aevent[6], $ListView1)
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _EventLog__Close($EventLog)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $ListView1
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]

    auch wenn "or" großgeschrieben ist. Wenn ich darunter jetzt eine zweite abfrage rein haue, stimmt die reihenfolge nicht vom Datum.

  • Du solltest dir nochmal die Grundlagen von Autoit anschauen.

    Das muss so heißen:

    [autoit]

    If $aEvent[6] = 6005 Or $aEvent[6] = 6006 Then

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.