我的应用程序需要将事件查看器日志保存到指定目录,并且必须使用 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;
}
最佳答案
您可以使用 EvtOpenChannelEnum
、EvtNextChannelPath
和 EvtClose
( documentation ) 枚举系统上的可用 channel 。这些 API(特别是 EvtNextChannelPath
)将以适当的格式返回 EvtExportLog
的路径。
关于c++ - 使用 c++ 中的 win api 获取事件查看器日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773786/