OnCustomCommand executes when the Service Control Manager (SCM) passes a custom command to the service. Specifies actions to take when a command with the specified parameter value occurs.

The only values for a custom command that you can define in your application or use in OnCustomCommand are those between 128 and 256.
Integers below 128 correspond to system-reserved values.

Create One Windows Service & Implement Below Code in Service :

namespace MyWindowsService
{
public partial class Service1 : ServiceBase
{
public enum SimpleServiceCustomCommands { Command1 = 128, Command2 =129, Command3 = 130};

public Service1()
{
InitializeComponent();
}

protected override void OnStart(string[] args)
{
}

protected override void OnStop()
{
}

protected override void OnCustomCommand(int command)
{
base.OnCustomCommand(command);

switch(command)
{
case(int)SimpleServiceCustomCommands.Command1:
//Command1 Implementation
break;

case(int)SimpleServiceCustomCommands.Command2:
//Command2 Implementation
break;

case(int)SimpleServiceCustomCommands.Command3:
//Command3 Implementation
break;
default:
break;

}
}
} }

Call Windows Service CustomCommands From User Application :