ローカル コンピュータ上のイベント ログにエントリが書き込まれたときに発生します。
名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
Public Event EntryWritten As EntryWrittenEventHandler
Dim instance As EventLog
Dim handler As EntryWrittenEventHandler
AddHandler instance.EntryWritten, handler
public event EntryWrittenEventHandler EntryWritten
public:
event EntryWrittenEventHandler^ EntryWritten {
void add (EntryWrittenEventHandler^ value);
void remove (EntryWrittenEventHandler^ value);
}
/** @event */
public void add_EntryWritten (EntryWrittenEventHandler value)
/** @event */
public void remove_EntryWritten (EntryWrittenEventHandler value)
JScript では、イベントは使用できますが、新規に宣言することはできません。
イベント通知を取得するには、EnableRaisingEvents を true に設定する必要があります。ローカル コンピュータ上にエントリが書き込まれたときだけ、イベント通知を受け取ることができます。リモート コンピュータ上の書き込まれたエントリに対する通知を受け取ることはできません。
EntryWritten デリゲートを作成する場合は、イベントを処理するメソッドを識別してください。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、イベントが発生するたびにイベント ハンドラが呼び出されます。デリゲートを使用したイベント処理の詳細については、「イベントの利用」を参照してください。
システムは、直前の書き込みイベントが少なくとも 5 秒前に発生した場合にだけ、WriteEntry に応答します。つまり、イベント ログの変更が 5 秒間に複数回発生した場合でも、EntryWritten イベント通知を受信する回数は 1 回だけです。WriteEntry 呼び出しの間に十分に長いスリープ間隔 (約 10 秒) を挿入すると、イベントが失われません。ただし、これよりも頻繁に書き込みイベントが発生する場合は、最新の書き込みイベントが失われることがあります。
エントリ書き込みイベントを処理する例を次に示します。
Option Explicit On
Option Strict On
Imports System
Imports System.Diagnostics
Imports System.Threading
Class MySample
' This member is used to wait for events.
Private Shared signal As AutoResetEvent
Public Shared Sub Main()
Dim myNewLog As New EventLog()
myNewLog.Log = "MyCustomLog"
AddHandler myNewLog.EntryWritten, AddressOf MyOnEntryWritten
myNewLog.EnableRaisingEvents = True
signal = New AutoResetEvent(False)
signal.WaitOne()
End Sub ' Main
Public Shared Sub MyOnEntryWritten(ByVal [source] As Object, ByVal e As EntryWrittenEventArgs)
signal.Set()
End Sub ' MyOnEntryWritten
End Class ' MySample
using System;
using System.Diagnostics;
using System.Threading;
class MySample{
// This member is used to wait for events.
static AutoResetEvent signal;
public static void Main(){
EventLog myNewLog = new EventLog();
myNewLog.Log = "MyCustomLog";
myNewLog.EntryWritten += new EntryWrittenEventHandler(MyOnEntryWritten);
myNewLog.EnableRaisingEvents = true;
signal = new AutoResetEvent(false);
signal.WaitOne();
}
public static void MyOnEntryWritten(object source, EntryWrittenEventArgs e){
signal.Set();
}
}
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
ref class MySample
{
private:
// This member is used to wait for events.
static AutoResetEvent^ signal;
public:
static void main()
{
EventLog^ myNewLog = gcnew EventLog;
myNewLog->Log = "MyCustomLog";
myNewLog->EntryWritten += gcnew EntryWrittenEventHandler( MyOnEntryWritten );
myNewLog->EnableRaisingEvents = true;
signal = gcnew AutoResetEvent( false );
signal->WaitOne();
}
static void MyOnEntryWritten( Object^ /*source*/, EntryWrittenEventArgs^ /*e*/ )
{
signal->Set();
}
};
int main()
{
MySample::main();
}
import System.*;
import System.Diagnostics.*;
import System.Threading.*;
class MySample
{
// This member is used to wait for events.
private static AutoResetEvent signal;
public static void main(String[] args)
{
EventLog myNewLog = new EventLog();
myNewLog.set_Log("MyCustomLog");
myNewLog.add_EntryWritten(new EntryWrittenEventHandler(
MyOnEntryWritten));
myNewLog.set_EnableRaisingEvents(true);
signal = new AutoResetEvent(false);
signal.WaitOne();
} //main
private static void MyOnEntryWritten(Object source,
EntryWrittenEventArgs e)
{
signal.Set();
} //MyOnEntryWritten
} //MySample
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
.NET Framework
サポート対象 : 2.0、1.1、1.0