Problem mit Autoit und _eventlog_Report

  • Hoffe mir kann jemand helfen


    Ich stehe nun voll auf dem Schlauch, ich experementiere gerade mit den Eventlogs in Autoit und soweit funktioniert das auch.


    Das hier ist schon mal mein Code:


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

    Local $hEventLog, $aData[1]=[0]

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

    $hEventLog = _EventLog__Open("", "Application")

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

    _EventLog__Report($hEventLog, 2, "MyDefrag",1000, "Administrator", "MyDefrag wurde vom User abgebrochen",$aData)

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

    _EventLog__Close($hEventLog)

    [/autoit]


    Im Prinzip der selbe wie er auch in der Hilfe aufgebaut ist. Allerdings bekomme ich in den Anwendungen keinen neuen Eintrag zustande.


    Wenn ich aber aus "Application" (Habe Application auch schon durch Anwendung ersetz) ein "System" mache, schreibt er es ohne Probleme in die Systemereignisse! Dort wäre dieser Eintrag aber falsch bzw. unschön!


    Was mache ich falsch? Oder muss man noch auf irgendwelche EventIDs und Kategorien achten???


    Danke schon mal für Eure Hilfe!


    LG


    Susie

    Einmal editiert, zuletzt von Susie1703 (6. November 2012 um 14:23)

  • Hallo

    dieses aus der Hilfe zusammengestückelte Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <EventLog.au3>
    #RequireAdmin
    Global $iMemo

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

    _Main()

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

    Func _Main()
    Local $hEventLog, $aData[4]=[3, 1, 2, 3], $hGUI

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

    ; Create GUI
    $hGUI = GUICreate("EventLog", 400, 300)
    $iMemo = GUICtrlCreateEdit("", 2, 2, 396, 300, 0)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

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

    $hEventLog = _EventLog__Open ("", "Application")
    MemoWrite("Log full ........: " & _EventLog__Full ($hEventLog))
    MemoWrite("Log record count : " & _EventLog__Count ($hEventLog))
    MemoWrite("Log oldest record: " & _EventLog__Oldest ($hEventLog))
    _EventLog__Report($hEventLog, 4, 0, 2, "Administrator", "Von AutoIt3 generiertes Ereignis", $aData)
    $aEvent = _EventLog__Read($hEventLog, True, False) ; liest das letzt Event
    ;~ $hEventLog = _EventLog__Open("", "System"); System-Log
    ;~ $aEvent = _EventLog__Read($hEventLog)
    ;~ $aEvent = _EventLog__Read($hEventLog, True, False) ; Nächsten Eintrag lesen
    MemoWrite("Ergebnis .........: " & $aEvent[ 0])
    MemoWrite("Datensatznummer ..: " & $aEvent[ 1])
    MemoWrite("Übermittelt ......: " & $aEvent[ 2] & " " & $aEvent[ 3])
    MemoWrite("Erstellt .........: " & $aEvent[ 4] & " " & $aEvent[ 5])
    MemoWrite("Ereignis-ID ......: " & $aEvent[ 6])
    MemoWrite("Typ ..............: " & $aEvent[ 8])
    MemoWrite("Kategorie ........: " & $aEvent[ 9])
    MemoWrite("Quelle ...........: " & $aEvent[10])
    MemoWrite("Computer .........: " & $aEvent[11])
    MemoWrite("Benutzer .........: " & $aEvent[12])
    MemoWrite(@CRLF & "Beschreibung: " & @CRLF & @CRLF & $aEvent[13])
    _EventLog__Close ($hEventLog)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    EndFunc ;==>_Main

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

    ; Write a line to the memo control
    Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
    EndFunc ;==>MemoWrite

    [/autoit]

    funktioniert bei mir unter XP SP3 (AutoIt 3.6.6.1) einwndfrei. Bei anderen BS beötigst du u.U. #RequireAdmin am Anfang.

    mfg autoBert

  • Also nun klappt es tatsächlich! Ich denke das er einfach die ID nicht wirklich wollte.


    Habe das ganze nun so eingebaut:


    [autoit]

    Local $hEventLog, $aData[1]=[0]

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

    $hEventLog = _EventLog__Open("", "Anwendung")

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

    _EventLog__Report($hEventLog, 1,"MyDefrag",0, @UserName, "MyDefrag wurde vom User abgebrochen",$aData)

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

    _EventLog__Close($hEventLog)

    [/autoit]


    Danke

    Gruß

    Susie