caractères de contrôle de service Windows
-
13-10-2019 - |
Question
Je créé un service Windows et souhaite envoyer une commande + B + C ou de contrôle valeur de contrôle. Je sais que je peux utiliser le contrôle sc, mais je me demandais s'il y avait un endroit qui contenait toutes les valeurs possibles que je peux envoyer. Il existe une méthode d'arrêt sc, mais je suis à la recherche d'envoyer un caractère de contrôle.
La solution
Le « gracefulness » d'un arrêt de service dépend tout sur la façon dont votre service répond à la demande. Si vous écrivez le service, alors vous avez le plein contrôle sur la façon dont votre service répond lorsque le SCM envoie une requête « stop ». Après avoir reçu la demande, vous disposez d'un temps limité (Windows décide combien) pour arrêter votre service et de répondre à la demande de contrôle. Si vous ne parvenez pas à répondre en temps opportun, Windows peut mettre fin à votre processus de service disgracieuse.
Une application console peut répondre à une demande Ctrl + C en utilisant le SetConsoleCtrlHandler()
fonction. Cependant, les processus de service ne sont pas exécutés à l'intérieur d'une fenêtre de la console, de sorte que ce gestionnaire est tout à fait inapplicable aux services.