Чтение сохраненного файла EVTX по указанному пути

В настоящее время я работаю над проектом, где мне нужно читать события Windows.
Я использую OpenEventLog () и ReadEventLog () из Win API. Я могу читать события из системы, используя имя типа события.
Но мне нужно указать имя файла или путь к файлу .evtx, который я сохранил из EventViewer. Я попробовал приведенный ниже код,

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 напрямую, как показано в «Чтение файлов .evt / .evtx напрямую» , но позже я обнаружил, что это не может быть сделано. По-видимому, нет способа читать их напрямую без Win API или без написания целой пачки кода парсера.

Заранее спасибо.

0

Решение

Ну получается OpenEventLog() не предназначен для открытия сохранен .evtx файлы.
Я должен был использовать OpenBackupEventLog() для этого.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector