Partager via


Introduction à la communication avec des services existants

Mise à jour : novembre 2007

Vous pouvez utiliser le composant ServiceController pour vous connecter à des services existants et contrôler leur comportement. Lorsque vous créez une instance du composant ServiceController, vous la définissez de sorte qu'elle interagisse avec un service Windows particulier. Vous pouvez ensuite utiliser l'instance de composant pour démarrer, arrêter et manipuler à votre gré le service concerné. Par exemple, vous pouvez créer un composant ServiceController et l'utiliser avec un composant Timer pour démarrer et arrêter un service dans un intervalle de temps donné.

Le composant ServiceController vous permet d'effectuer plusieurs opérations utiles. Par exemple :

  • Vous pouvez démarrer et arrêter le service auquel vous êtes connecté, le suspendre ou effectuer toute autre tâche administrative à laquelle le service est capable de répondre. Pour plus d'informations, consultez Comment : effectuer des tâches administratives sur des services.

  • Vous pouvez interroger diverses propriétés du service avec lequel le composant interagit et récupérer les valeurs de ses propriétés. Par exemple, vous pouvez déterminer si le service peut être arrêté, suspendu et repris en récupérant la valeur des propriétés CanStop et CanPauseAndContinue.

  • Vous pouvez retourner une liste de services présents sur un ordinateur particulier.

  • Vous pouvez spécifier une commande personnalisée à appeler sur votre service. Pour plus d'informations sur les commandes personnalisées, consultez MSDN Online.

En fait, le composant ServiceController passe ses demandes d'action au Gestionnaire de contrôle des services et non au service lui-même. Le Gestionnaire de contrôle des services arrête, démarre ou suspend alors le service ou accomplit d'autres actions demandées. Une fois que le composant ServiceController a passé la demande au Gestionnaire de contrôle des services, il revient sans attendre que le Gestionnaire de contrôle des services ait à son tour transmis la demande au service. C'est pourquoi vous devez gérer les exceptions au sein même de la classe de service plutôt que dans la classe ServiceController.

Remarque :

En règle générale, vous ne devez pas ajouter un composant ServiceController à une application de service Windows si vous voulez que ce composant manipule le service contenu dans le même projet. Le code contenu dans le projet créant un service ne peut pas servir à contrôler ce service ; le service doit être contrôlé à partir d'un autre contexte.

Voir aussi

Tâches

Comment : créer des instances du composant ServiceController

Comment : effectuer des tâches administratives sur des services

Comment : récupérer des listes de services

Gestionnaire de services, exemple