Windows C# Tutorial

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
public class Service1 : System.ServiceProcess.ServiceBase
{
    private System.Diagnostics.EventLog eventLog1;
    public Service1()
    {
        this.eventLog1 = new System.Diagnostics.EventLog();
        ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
        this.eventLog1.Log = "MyCustomLog";
        this.eventLog1.Source = "CustomEventService2";
        this.AutoLog = false;
        this.ServiceName = "CustomEventService";
        ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
    }
    // The main entry point for the process
    static void Main()
    {
        System.ServiceProcess.ServiceBase[] ServicesToRun;
        ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
        System.ServiceProcess.ServiceBase.Run(ServicesToRun);
    }
    protected override void OnStart(string[] args)
    {
        if ( !EventLog.SourceExists( eventLog1.Source ) )
        {
            EventLog.CreateEventSource( eventLog1.Source, eventLog1.Log );
        }
        eventLog1.WriteEntry( "Hello", EventLogEntryType.Information );
    }
    protected override void OnStop()
    {
        eventLog1.WriteEntry( "Goodbye", EventLogEntryType.Warning );
    }
}