2010-09-22 269 views
1

我的應用程序需要將事件查看器日誌保存到指定的目錄,並且必須使用win api完成。應用程序和系統日誌是必需的。用win api獲取事件查看器日誌C++

編輯:EvtExportLog - 我發現因爲最低要求是贏服務器2008年,我不能使用這個功能,我需要這個來運服務器2000和Windows 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

您可以枚舉使用EvtOpenChannelEnumEvtNextChannelPathEvtClosedocumentation)系統上的可用信道。這些API(特別是EvtNextChannelPath)將以EvtExportLog的適當格式返回路徑。

+0

tnx快速回復,但我發現這些功能的要求是win服務器2008年,我需要這個工作在win服務器2000年和2003年。任何建議? – shake 2010-09-22 21:43:59

+1

舊版API(Windows 2000,XP和Windows Server 2003)的文檔位於http://msdn.microsoft.com/zh-cn/library/aa363652(v=VS.85).aspx。 'BackupEventLog'可能是你需要的。 – 2010-09-22 21:52:21

+0

thank you..it worked .. :)) – shake 2010-09-22 22:19:46