如何枚举和删除Windows事件?

时间:2013-10-08 11:12:12

标签: c++ windows winapi

Windows事件日志通常存储在%SystemRoot%\System32\winevt\Logs中。所有文件都是某种数据库,我想询问如何以编程方式将数据从*.evt*.evtx文件放入单独的记录中,以及如何从系统中删除这些记录。

我找到Windows Event Log Functions,但我正在寻找适用于XP的解决方案。后来尝试Event Logging Functions。使用这个API我设法将数据作为单个记录读取,但是只有一个删除功能,它是ClearEventLog。但是,这会从日志中删除所有事件。我正在寻找能够删除单个记录的解决方案。

重要提示:我正在使用C ++进行编程,因此C#和.net解决方案没有帮助,我还需要兼容Windows-XP。

1 个答案:

答案 0 :(得分:2)

存在从事件日志中读取的API。

  • OpenEventLog function - 打开指定事件日志的句柄
  • ReadEventLog function - 从指定的事件日志中读取指定数量的条目。该函数可用于按时间顺序或反向时间顺序读取日志条目。
  • Querying for Event Information显示如何打开事件日志,从日志中读取事件,打印有关事件的信息,然后关闭事件日志。
  • Event Logging Functions - API本身