イベントログへのアプリケーションの書き込みの簡単な例:
procedure WriteToLog(Msg:string; EventId: Word = 0);
var
h: THandle;
begin
h := RegisterEventSource(nil, PChar(Application.ExeName));
if h > 0 then
try
ReportEvent(h, 0, 0, EventId, nil, 1, 0, @Msg, nil);
finally
DeregisterEventSource(h);
end;
end;
procedure TForm7.Button1Click(Sender: TObject);
begin
WriteToLog('* Blah Blah Blah *');
end;
しかし、混乱した説明のこの種を与えるないregistering the EventID with the systemことを注意してください:
イベントIDの説明(0) (C:¥Documents and Settings¥fgaillard¥My Documents¥RAD Studio¥Projects¥Project1.exe) が見つかりません。ローカルコンピュータは、 リモートコンピュータからのメッセージを表示するために、必要な レジストリ情報またはメッセージDLLファイルを持っていない可能性があります。/AUXSOURCE =フラグを使用して にこの説明を取得できます。詳細については、ヘルプとサポートを参照してください。下記の 情報は、イベントの一部です:* Blah Blah Blah *。
これは楽しいものです。私は最終的に、アプリケーションをサービスとして実行できるようにする(これを作成したい)か、スタンドアロンの実行可能ファイルとして実行することができるようになります(現在のところ)。少なくとも私はそれがどのモードで実行されているかを検出する方法を知っており、適切に切り替えることができます。みんな助けてくれてありがとう。 –