c++ - 使用 c++ 中的 win api 获取事件查看器日志

标签 c++ winapi event-log event-viewer

我的应用程序需要将事件查看器日志保存到指定目录,并且必须使用 win api 来完成。需要应用程序和系统日志。

编辑:EvtExportLog - 我发现我无法使用此函数,因为最低要求是 Win Server 2008,而我需要它在 Win Server 2000 和 Win Server 2003 上工作。

有什么建议以及如何使用它吗?

感谢理查德·库克(Richard Cook),我们找到了解决方案。

    int getEventLogs()
{
    HANDLE h = OpenEventLog(NULL,"System");
    if(!BackupEventLog(h,"backup.evt"))
    {
        wprintf(L"BackupEventLog failed for initial export with %lu.\n", GetLastError());
    }
    return 1;
}

最佳答案

您可以使用 EvtOpenChannelEnumEvtNextChannelPathEvtClose ( documentation ) 枚举系统上的可用 channel 。这些 API(特别是 EvtNextChannelPath)将以适当的格式返回 EvtExportLog 的路径。

关于c++ - 使用 c++ 中的 win api 获取事件查看器日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773786/

相关文章:

c++ - 如何找到固件使用的 Flash 和 RAM 的大小?

delphi - Wininet InternetSetStatusCallback 不起作用

c++ - Direct2d + winapi 矩形未完全填充

c# - 无法打开源 'blah' 的日志。您可能没有写入权限。嗯?

c++ - 如何从 C++ 中的 Windows 注册表中获取计算机制造商和型号?

C++数组初始化

c++ - 是否可以创建一个 C++ 工厂系统来创建任何 "registered"对象类型的实例,而不考虑继承?

c++ - 如何发送应用程序的链接,如 Spotify 那样

c# - 窗口服务如何正确地将消息写入事件日志?

c# - 使用模拟时写入事件日志