如何用事件源编写Windows日志事件

Mar*_*osK 2 delphi delphi-xe delphi-xe2

我正在尝试编写一个Windows日志事件.

我读了这个答案,并尝试使用它但是在这里报告了同样的问题"无法找到来自源PLCHIDSrv的事件ID 1的描述......"

我正在尝试这个解决方案,但不知道如何在Delphi中实现此代码

var data = new EventSourceCreationData("yourApp", "Application");
data.MessageResourceFile = pathToYourMessageFile;
EventLog.CreateEventSource(data);
Run Code Online (Sandbox Code Playgroud)

RRU*_*RUZ 9

您收到该错误是因为您没有将事件源添加到Windows注册表.

查看MSDN文档:

您可以使用默认的应用程序日志,而无需向注册表添加事件源.但是,除非您注册事件源并提供消息文件,否则事件查看器将无法将事件标识符代码映射到消息字符串.

相同的链接包含一个带有C++代码的示例,可以很容易地将其转换为Delphi.

UPDATE

我刚刚发现这篇文章Writing an event logger with Delphi 2010展示了如何向注册表添加事件源并写入事件日志.