ご存知のように、Windows イベント ログは、Vista 未満 (XP 以下) と Vista 以降では異なります。こちらのWindows イベント ログを参照してください。Vista では、すべてのイベント ログを取得する方法に関する API を理解できました。
Windows XP では、このサンプル コードを実行できます。そこに記入する必要がある2つのことは次のとおりです。
#define PROVIDER_NAME L"MyEventProvider"
#define RESOURCE_DLL L"<path>\\Provider.dll"
ただし、プロバイダー名とそのリソース dll をどこで取得するかという問題があります。
私が考えることができる 1 つの方法は、レジストリ キーの下にあるすべてのサブ キーを反復処理することです:安全
これらのサブキーから、プロバイダー名とその EventMessageFile を取得できました (一部のサブキーには EventMessageFile がなく、ParameterMessageFile があることがわかりました)。
これがこれを行う唯一の方法ですか?または、他のより良いアプローチはありますか?