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 :
- Create Service Controller Object
ServiceController Controller = new ServiceController("MyWindowsService");
- Start the Windows Service
Controller.Refresh(); //Gets the current status of service
if (Controller.Status == ServiceControllerStatus.Stopped)
{
Controller.Start();
} - Call CustomCommands Using Controller Object
if (Controller.Status == ServiceControllerStatus.Running)
{
Controller.ExecuteCommand(128);
}