Windows 事件日志:任务类别

Windows 事件日志:任务类别

我一直在互联网上搜索这部分 Windows 事件日志的正式定义。类别是如何确定的?该字段是否有一组标准值?应用程序可以创建自己的任务类别吗?

答案1

探究.NET事件日志事件日志条目课程应该会给你一些线索,尤其是后者类别财产:

每个应用程序(事件源)都可以定义自己的编号类别及其映射的文本字符串。事件查看器可以使用类别来过滤日志中的事件。

此外,正如活动类别状态:

类别可帮助您组织事件,以便事件查看器可以过滤它们。每个事件源可以定义自己的编号类别以及它们映射到的文本字符串。

该页面向您展示了您的应用(即事件源)如何定义自己的事件类别。您可以获得一些有用的提示,了解如何让该示例在 Win7 和 Server 2008 R2 上运行这里. Dobb 博士的这篇文章是关于自定义事件日志类别可能也很有用。我相信还有更多可用的教程,如果您需要代码方面的帮助,Stack Overflow 将是您的最佳选择。

注意:据我所知,此字段没有标准值集,因为应用程序可以使用自己的自定义字符串。当然,如果您想使用 Windows 本身使用的字符串,我相信它们必须在某个资源/标头/消息文件中定义。

答案2

应用程序可以创建自己的任务类别。其工作方式与应用程序创建自己的事件消息文本相同:将它们放在 .mc 文件中,使用消息编译器将其编译为 .rc 文件,使用资源编译器将其编译为 .res 文件,然后使用 link.exe 将其编译为 DLL。

如果你以前从未这样做过,那么这里有一个一流的教程http://www.eventlogblog.com/mt/mt-search.cgi?search=python&IncludeBlogs=1-- 我最近尝试过,它仍然适用于当前版本的 Platform SDK 和 Visual Studio Express,尽管您必须在 PATH 中为可执行文件和 DLL 设置其他文件夹。

类别文本可以位于其自己的 DLL 中,但您也可以将它们与消息放在同一个 DLL 中。如果这样做,类别应该位于 .mc 文件的开头,并从 1 开始无间隙地编号。在 DLL 的注册表项中,您告诉 Windows 有多少消息是类别,例如 5,然后它将前 5 条消息视为类别。

相关内容