2010-09-22 3 views
1

Мое приложение должно сохранять журналы просмотра событий в указанный каталог, и это необходимо сделать с помощью win api. Требуются журналы приложений и систем.Получить журналы просмотра событий с помощью win api в C++

EDIT: EvtExportLog - Я узнал, что я не могу использовать эту функцию, поскольку минимальные требования Win Server 2008, и мне это нужно для работы на Win Server 2000 и Win Server 2003.

Любые предложения, что в использовать и как его использовать?

И есть решение благодаря Ричарду Куку.

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; 
} 

ответ

2

Вы можете перечислить доступные каналы на системе с использованием EvtOpenChannelEnum, EvtNextChannelPath и EvtClose (documentation). Эти API (EvtNextChannelPath конкретно) возвращают пути в соответствующем формате для EvtExportLog.

+0

tnx для быстрого ответа, но я узнал, что для этих функций требуются win server 2008, и мне это нужно для работы на сервере win 2000 и 2003. Любые предложения? – shake

+1

Документация для старых API (Windows 2000, XP и Windows Server 2003) находится по адресу http://msdn.microsoft.com/en-us/library/aa363652(v=VS.85).aspx. «BackupEventLog» - это то, что вам нужно. –

+0

Благодарю вас .. это сработало .. :)) – shake

Смежные вопросы