好的,最后我找到了它(也得到了源代码)- prog 创建了注册表项(可能在调用 CreateEventSource() 时发生),直到刷新 regedit 才可见:-|
而且,它确实注册了一个格式化库,只是它是我不能依赖的:C:\Windows\Microsoft.NET\Framework64\v2.0.50727\EventLogMessages.dll
或者,我可以吗?
啊,我们来解释一下:
EventLog.WriteEntry 和 EventLog.WriteEvent 方法之间的区别
所以,我不能,因为我没有使用.Net ... :-|
现在,如果我现在从我的 prog 发送另一个事件(使用与外部 prog 相同的新创建的源),我通常会在事件查看器中看到它。这意味着,WriteEntry() 实际上并没有直接写入包含文本的不同/特殊类型的 evt 日志记录(与仅写入 msg 目录 ID + 参数的标准方法相反),而是在格式化库中必须有一些技巧使 EventViewer 应用某种“默认”格式。
任何想法我怎么能做到这一点?除了只是复制上面的 EventLogMessages.dll 吗?:-)
好的,终于在http://msdn.microsoft.com/en-us/magazine/cc163446.aspx找到了关于这个的答案
“这个文件叫做 EventLogMessages.dll,它包含 65,536 个事件描述,每个事件描述由字符串“%1”,你想写的任何字符串的占位符”
我希望像“messageid = *”这样的东西,但这似乎太简单了:-|
但也许其他人对这里发生的事情感兴趣......