Delphi 读取Windows事件日志

Delphi 读取Windows事件日志,delphi,delphi-xe2,jvcl,Delphi,Delphi Xe2,Jvcl,我想从windows事件日志中读取事件。我发现了两个机会:WMI和API命令。但目前我使用的是来自绝地VCL(JVCL)的JvNTEventLog组件(可能它使用的是API,我不知道)。但是我有点麻烦。例如,“JvLog.EventRecord.Computer”命令应该显示计算机名。这适用于安全日志(John PC说),但在系统日志和应用程序日志中它只是空的。但是,在安全日志中显示“uditing”的“JvLog.EventRecord.Source”在系统日志中显示了我的计算机名,但是被切断

我想从windows事件日志中读取事件。我发现了两个机会:WMI和API命令。但目前我使用的是来自绝地VCL(JVCL)的JvNTEventLog组件(可能它使用的是API,我不知道)。但是我有点麻烦。例如,“JvLog.EventRecord.Computer”命令应该显示计算机名。这适用于安全日志(John PC说),但在系统日志和应用程序日志中它只是空的。但是,在安全日志中显示“uditing”的“JvLog.EventRecord.Source”在系统日志中显示了我的计算机名,但是被切断了。现在是“n-PC”。此外,我无法阅读“JvLog.EventRecord.Message”。在系统和应用程序日志中,它是加密的。“JvLog.EventRecord.EventString”也是加密的,在安全日志中它看起来只是混合和连接的。 那么直接使用API命令会更容易吗?还是应该使用WMI方法


谢谢:)

最好、最简单的方法可能是使用WMI。已经创建了一个非常好的,可能会对你有很大帮助。什么德尔福版本?什么Windows版本?什么JVCL版本?当你浏览源代码时,调试器向你展示了什么?@Peter:我会看一下链接,谢谢。@Ken:这是在Win7 Professional上带有JVCL 3.47的Delphi XE2。你能发布你正在使用的代码吗?还是组件属性?或者其他可能对你有用的东西?