如何在VC++中不使用.NET Framework来确定特定事件日志是否存在

How to determine if a specific event log exists WITHOUT using .NET Framework in VC++?

本文关键字:事件 存在 是否 日志 Framework NET VC++      更新时间:2023-10-16

我想知道是否有任何WinAPI可以取代以下函数EventLog::Exists()EventLog::CreateEventSource(),这样我的代码就不会依赖于.NET Framework
如果你能给我一些建议,我将不胜感激!

#define PRINT_SOURCE_NAME "Microsoft-Windows-PrintService"  
#define PRINT_LOG_NAME "Microsoft-Windows-PrintService/Operational" 
BOOL bRet = EventLog::Exists(PRINT_LOG_NAME );
if (!bRet)
{
    EventLog::CreateEventSource(PRINT_SOURCE_NAME , PRINT_LOG_NAME );
}

EventLog::CreateEventSource方法只是对控制事件日志的注册表项进行编辑的精简包装。您可以通过操作注册表直接访问这些条目,而无需.Net。

主条目是SYSTEMCurrentControlSetServicesEventLog,子关键字表示可用日志。此MSDN条目详细描述了各种值以及它们代表的

  • 事件日志