Freigeben über


ServiceController.ExecuteCommand(Int32) Methode

Definition

Führt einen benutzerdefinierten Befehl für den Dienst aus.

public:
 void ExecuteCommand(int command);
public void ExecuteCommand (int command);
member this.ExecuteCommand : int -> unit
Public Sub ExecuteCommand (command As Integer)

Parameter

command
Int32

Ein von der Anwendung definiertes Befehlsflag, das angibt, welcher benutzerdefinierte Befehl ausgeführt werden soll. Der Wert muss zwischen 128 und einschließlich 256 liegen.

Ausnahmen

Beim Zugreifen auf eine System-API ist ein Fehler aufgetreten.

Der Dienst wurde nicht gefunden.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der ServiceController.ExecuteCommand(Int32) Methode gezeigt, um benutzerdefinierte Befehle im SimpleService Dienstbeispiel auszuführen.

using System;
using System.ServiceProcess;

namespace test_exec_cmnd
{
    class Program
    {
        private enum SimpleServiceCustomCommands { StopWorker = 128, RestartWorker, CheckWorker };
        static void Main(string[] args)
        {
            ServiceController myService = new ServiceController("SimpleService");
            myService.ExecuteCommand((int)SimpleServiceCustomCommands.StopWorker);
            myService.ExecuteCommand((int)SimpleServiceCustomCommands.RestartWorker);
            myService.ExecuteCommand((int)SimpleServiceCustomCommands.CheckWorker);
        }
    }
}
Imports System.ServiceProcess



Class Program
    
    Private Enum SimpleServiceCustomCommands
        StopWorker = 128
        RestartWorker
        CheckWorker '
    End Enum 'SimpleServiceCustomCommands

    Shared Sub Main(ByVal args() As String) 
        Dim myService As New ServiceController("SimpleService")
        myService.ExecuteCommand(Fix(SimpleServiceCustomCommands.StopWorker))
        myService.ExecuteCommand(Fix(SimpleServiceCustomCommands.RestartWorker))
        myService.ExecuteCommand(Fix(SimpleServiceCustomCommands.CheckWorker))
    
    End Sub
End Class

Hinweise

Wenn Sie aufrufen ExecuteCommand, ändert sich der Status des Diensts nicht. Wenn der Dienst gestartet wurde, bleibt Runningder Status . Wenn der Dienst beendet wurde, bleibt Stoppedder Status und so weiter. Um den benutzerdefinierten Befehl zu verarbeiten, muss der Dienst die OnCustomCommand Methode außer Kraft setzen und einen Handler für den vom Parameter identifizierten command Befehl bereitstellen.

Gilt für

Siehe auch