从事件日志读取一个值
#Include <EventLog.au3>
_EventLog__Read($hEventLog [, $fRead = True [, $fForward = True [, $iOffset = 0]]])
$hEventLog | 事件日志句柄 |
$fRead | [可选参数] 如果真, 操作从最近的一次调用到函数使用该句柄依次进行. 如果假, 读取操作将从$iOffset参数指定的记录开始. |
$fForward | [可选参数] 如果真, 日志按日期顺序读取. 如果假, 日志按日期反序读取. |
$iOffset | [可选参数] 开始进行读取操作的事件记录的编号. 当为fRead真时该参数可忽略. |
成功: | 如下格式的数组: |
[ 0] - 成功为真, 失败为假 | |
[ 1] - 记录数 | |
[ 2] - 项目提交的日期 | |
[ 3] - 项目提交的时间 | |
[ 4] - 项目被接收并被写入日志的日期 | |
[ 5] - 项目被接收并被写入日志的事件 | |
[ 6] - 事件标识 | |
[ 7] - 事件类型. 下列值之一: | |
1 - 错误事件 | |
2 - 警告事件 | |
4 - 通知事件 | |
8 - 审查成功事件 | |
16 - 审查失败事件 | |
[ 8] - 事件类型字符串 | |
[ 9] - 事件科目 | |
[10] - 事件来源 | |
[11] - 计算机名 | |
[12] - 用户名 | |
[13] - 事件描述 | |
[14] - 事件数据数组 | |
失败: | Array[0] = False |
#include <GUIConstantsEx.au3>
#include <EventLog.au3>
Global $iMemo
_Main()
Func _Main()
Local $hEventLog, $aEvent
; 创建 GUI
GUICreate("EventLog", 400, 300)
$iMemo = GUICtrlCreateEdit("", 2, 2, 396, 300, 0)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
; 读取最近的事件记录
$hEventLog = _EventLog__Open("", "Application")
$aEvent = _EventLog__Read($hEventLog, True, False) ; 读取最后一条事件
;~ $hEventLog = _EventLog__Open("", "System")
;~ $aEvent = _EventLog__Read($hEventLog)
;~ $aEvent = _EventLog__Read($hEventLog, True, False)
MemoWrite("Result ............: " & $aEvent[0])
MemoWrite("Record number .....: " & $aEvent[1])
MemoWrite("Submitted .........: " & $aEvent[2] & " " & $aEvent[3])
MemoWrite("Generated .........: " & $aEvent[4] & " " & $aEvent[5])
MemoWrite("Event ID ..........: " & $aEvent[6])
MemoWrite("Type ..............: " & $aEvent[8])
MemoWrite("Category ..........: " & $aEvent[9])
MemoWrite("Source ............: " & $aEvent[10])
MemoWrite("Computer ..........: " & $aEvent[11])
MemoWrite("Username ..........: " & $aEvent[12])
MemoWrite("Description .......: " & $aEvent[13])
_EventLog__Close($hEventLog)
; 循环直到用户退出
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
; 写入一行到 memo 控件
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite