正如我們所知,windows事件日誌在低於Vista(XP及以下)和Vista及以上版本時不同,請參閱此處Windows Event Logs。在Vista上,我能夠理解關於如何檢索所有事件日誌的API。如何在Windows XP中檢索所有事件日誌?
在Windows XP上,我可以運行這個sample code。我們需要填寫有兩件事情:
#define PROVIDER_NAME L"MyEventProvider"
#define RESOURCE_DLL L"<path>\\Provider.dll"
但是這個問題會在那裏從哪裏得到提供者的名稱和它的資源DLL。我能想到的
一種方式是通過在註冊表項中的所有子鍵遍歷:HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\事件日誌\應用 HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\事件日誌\ SYSTEM HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服務\事件日誌\安全
從這些子項中,我們可以得到提供者的名稱和它的EventMessageFile(雖然我發現了一些子項不具備EventMessageFile,而是hasParameterMessageFile)。
這是唯一的方法來做到這一點?或者還有其他更好的方法嗎?