.NET Framework アプリケーションのサーバーベースのコンポーネント
方法 : EntryWritten イベントのハンドラを作成する

EventLog コンポーネントのイベント ハンドラを作成して、このログにエントリが書き込まれると自動的にプロシージャが呼び出されるように設定できます。EventLog コンポーネントのインスタンスのイベント ハンドラを作成する方法はいくつかありますが、最も簡単なのは、ほとんどの構文を Visual Studio に自動生成させる方法です。デザイナで EventLog コンポーネントをダブルクリックすると、Visual Studio にコード エディタが表示され、イベント ハンドラ、およびイベント ハンドラによって呼び出される空白プロシージャが作成されます。次に、EntryWritten イベント ハンドラ内で発生させる処理を入力します。

イベント ハンドラの詳細については、「イベントの処理と発生」を参照してください。

EntryWritten イベントの既定のハンドラを作成するには

  1. デザイナで、ハンドラを作成する EventLog コンポーネントをダブルクリックします。

    メモメモ

    コード エディタが表示され、2 つの項目がコードに追加されます。1 つはデリゲートを作成および登録し、プロシージャを呼び出すハンドラです。もう 1 つは EntryWritten イベントの空白プロシージャです。

  2. EntryWritten イベントの空白プロシージャでは、このイベントが呼び出されたときにエントリを受け取って処理するコードを定義します。コードは次のようになります。

    Visual Basic
    Private Sub EventLog1_EntryWritten(ByVal sender As System.Object, ByVal e As System.Diagnostics.EntryWrittenEventArgs) Handles EventLog1.EntryWritten
        If e.Entry.Source = "MyApplication" Then
            Console.WriteLine("Entry written by my app. Message: " & _
               e.Entry.Message)
        Else
            Console.WriteLine("Entry written by another application. ")
        End If
    End Sub
    C#
    private void eventLog1_EntryWritten(object sender, System.Diagnostics.EntryWrittenEventArgs e)
    {
        if (e.Entry.Source == "MyApplication")
            Console.WriteLine("Entry written by my application. Message: "
               + e.Entry.Message);
        else
            Console.WriteLine("Entry was written by another application.");
    }
    J#
    private void eventLog1_EntryWritten(System.Object sender, 
       System.Diagnostics.EntryWrittenEventArgs e)
    {
       if ( e.get_Entry().get_Source() == "MyApplication"  )
       {
          Console.WriteLine("Entry written by my application. Message: "
             + e.get_Entry().get_Message());
       }
       else
       {
          Console.WriteLine("Entry was written by another application.");
       }
    }
  3. EnableRaisingEvents プロパティを true に設定します。

プログラムでハンドラを作成するには

  1. AddHandler メソッドを使用して、EntryWrittenEventHandler 型のイベント ハンドラを作成します。このイベント ハンドラでは、ログにエントリが書き込まれるときに eventLog1_EntryWritten メソッドを呼び出します。コードは、次のようになります。

    Visual Basic
    Public Sub method5()
        AddHandler EventLog1.EntryWritten, _
           New System.Diagnostics.EntryWrittenEventHandler( _
           AddressOf Me.EventLog1_EntryWritten)
    C#
    this.eventLog1.EntryWritten += new
       System.Diagnostics.EntryWrittenEventHandler(
       this.eventLog1_EntryWritten);
    J#
    this.eventLog1.add_EntryWritten(new 
       System.Diagnostics.EntryWrittenEventHandler(
          this.eventLog1_EntryWritten));
    メモメモ

    この構文の詳細については、「イベントの処理と発生」を参照してください。

  2. EntryWritten プロシージャを作成し、エントリを処理するコードを定義します。

  3. EnableRaisingEvents プロパティを true に設定します。

参照

タグ :


Page view tracker