gpt4 book ai didi

c++ - 读取给定路径中保存的 EVTX 文件

转载 作者:行者123 更新时间:2023-11-28 04:47:56 27 4
gpt4 key购买 nike

我目前正在做一个需要读取 Windows 事件的项目。我正在使用 Win API 中的 OpenEventLog() 和 ReadEventLog()。我可以使用事件的类型名称从系统中读取事件。但我需要指定我从 EventViewer 保存的 .evtx 文件的文件名或文件路径。我尝试了以下代码,

HANDLE logHandle = OpenEventLog(NULL, "C:\\Users\\MyAccount\\Documents\\myevents.evtx");
DWORD status = GetLastError();
if(logHandle == NULL){
cerr<<"NO HANDLE GENERATED!!!"<<endl;
}else if(status == ERROR_INVALID_HANDLE){
cerr<<"INVALID HANDLE!!!"<<endl;
}else if(status!=0){
cout<<"OPENEVENTLOG ERROR STATUS::>"<<status<<endl;
}

但它没有找到指定的文件并切换到默认的应用程序事件。谁能告诉我可能是什么问题?或者代码中是否有任何需要更改的内容?

PS:我什至尝试将文件放在项目文件夹中并仅指定文件名(myevents.evtx),但仍然不起作用。我还尝试直接读取 evtx,如 "Reading .evt/.evtx files directly" 所示。 ,但后来我发现这是做不到的。显然,如果没有 win API 或不编写一大堆解析器代码,就无法直接读取它们。

提前致谢。

最佳答案

好吧,原来 OpenEventLog() 并不是用来打开保存的 .evtx 文件的。我应该为此使用 OpenBackupEventLog()

关于c++ - 读取给定路径中保存的 EVTX 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48881286/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com