Export (0) Print
Expand All

ServiceControllerStatus Enumeration

Indicates the current state of the service.

Namespace: System.ServiceProcess
Assembly: System.ServiceProcess (in system.serviceprocess.dll)

public enum class ServiceControllerStatus
public enum ServiceControllerStatus
public enum ServiceControllerStatus

 Member nameDescription
ContinuePendingThe service continue is pending. This corresponds to the Win32 SERVICE_CONTINUE_PENDING constant, which is defined as 0x00000005. 
PausedThe service is paused. This corresponds to the Win32 SERVICE_PAUSED constant, which is defined as 0x00000007. 
PausePendingThe service pause is pending. This corresponds to the Win32 SERVICE_PAUSE_PENDING constant, which is defined as 0x00000006. 
RunningThe service is running. This corresponds to the Win32 SERVICE_RUNNING constant, which is defined as 0x00000004. 
StartPendingThe service is starting. This corresponds to the Win32 SERVICE_START_PENDING constant, which is defined as 0x00000002. 
StoppedThe service is not running. This corresponds to the Win32 SERVICE_STOPPED constant, which is defined as 0x00000001. 
StopPendingThe service is stopping. This corresponds to the Win32 SERVICE_STOP_PENDING constant, which is defined as 0x00000003. 

The ServiceControllerStatus class is used by an instance of the ServiceController class to indicate whether an existing service is running, stopped, paused, or whether a Start, Stop, Pause, or Continue command is pending.

The following example uses the ServiceController class to check the current status of the TelNet service. If the service is stopped, the example starts the service. If the service is running, the example stops the service.

// Toggle the Telnet service - 
// If it is started (running, paused, etc), stop the service.
// If it is stopped, start the service.
ServiceController^ sc = gcnew ServiceController(  "Telnet" );
if ( sc )
{
   Console::WriteLine(  "The Telnet service status is currently set to {0}", sc->Status );
   if ( (sc->Status == (ServiceControllerStatus::Stopped) ) || (sc->Status == (ServiceControllerStatus::StopPending) ) )
   {
      // Start the service if the current status is stopped.
      Console::WriteLine(  "Starting the Telnet service..." );
      sc->Start();
   }
   else
   {
      // Stop the service if its status is not set to "Stopped".
      Console::WriteLine(  "Stopping the Telnet service..." );
      sc->Stop();
   }

   // Refresh and display the current service status.
   sc->Refresh();
   Console::WriteLine(  "The Telnet service status is now set to {0}.", sc->Status );

// Toggle the Telnet service - 
// If it is started (running, paused, etc), stop the service.
// If it is stopped, start the service.
ServiceController sc = new ServiceController("Telnet");
Console.WriteLine("The Telnet service status is currently set to {0}",
    sc.get_Status().ToString());

if (sc.get_Status().Equals(ServiceControllerStatus.Stopped) || 
    sc.get_Status().Equals(ServiceControllerStatus.StopPending)) {
    // Start the service if the current status is stopped.
    Console.WriteLine("Starting the Telnet service...");
    sc.Start();
}
else {
    // Stop the service if its status is not set to "Stopped".
    Console.WriteLine("Stopping the Telnet service...");
    sc.Stop();
}
// Refresh and display the current service status.
sc.Refresh();
Console.WriteLine("The Telnet service status is now set to {0}.", 
    sc.get_Status().ToString());

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft