我想使用python 3.3获取我的Windows 8机器的所有存储事件日志(尤其是鼠标事件日志)。我找到了一种在python中使用win32evtlog模块获取事件日志文件的方法。 通过阅读“系统”日志类型,我得到的总数为6594。
import win32evtlog
hand = win32evtlog.OpenEventLog("localhost","System")
flags = win32evtlog.EVENTLOG_BACKWARDS_READ| win32evtlog.EVENTLOG_SEQUENTIAL_READ
total = win32evtlog.GetNumberOfEventLogRecords(hand)
print("Total Number of Events:",total)
>>总活动数:6594
我认为鼠标事件记录了一定数量大小的所有其他日志。 6600个事件日志。但是当我尝试循环/遍历事件以获取信息时,我只需要获取3个事件日志对象。
import win32evtlog
hand = win32evtlog.OpenEventLog("localhost","System")
flags = win32evtlog.EVENTLOG_BACKWARDS_READ| win32evtlog.EVENTLOG_SEQUENTIAL_READ
events = win32evtlog.ReadEventLog(hand,flags,0)
print("LEN of event objects stored:",len(events),end="\n"*2)
>>存储事件对象的LEN:3
我的解决方案是错误的吗? 或者你看到这里有什么不对吗? 每次都感谢任何帮助
答案 0 :(得分:1)
我在尝试启动和关闭事件时遇到了同样的问题。显然问题只是您浏览事件列表的方式,应该像这样完成:http://www.blog.pythonlibrary.org/2010/07/27/pywin32-getting-windows-event-logs/
events = win32evtlog.ReadEventLog(hand,flags,0)
while events:
events=win32evtlog.ReadEventLog(hand,flags,0)
for event in events:
#do stuff here