Share via


Comment : récupérer des listes de services

Mise à jour : novembre 2007

Vous pouvez utiliser la méthode GetServices sur la classe ServiceController pour récupérer une liste de services à partir d'un ordinateur donné. La méthode GetServices retourne un tableau de tous les services disponibles sur un ordinateur, à l'exception de ceux qui sont associés aux pilotes de périphérique. Vous pouvez récupérer les services de pilotes de périphérique à l'aide de la méthode GetDevices.

Pour ces deux méthodes, vous pouvez soit choisir un ordinateur au sujet duquel vous souhaitez obtenir des informations soit ne passer aucun paramètre pour ne récupérer que les services sur l'ordinateur local.

Pour récupérer une liste de services

  1. Créez un tableau de type ServiceController destiné à accueillir les résultats de votre requête.

  2. Appelez la méthode appropriée sur la classe ServiceController et définissez les résultats dans le tableau de l'une des manières suivantes :

    • Pour récupérer sur l'ordinateur local des services ne correspondant pas à des pilotes de périphérique, appelez la méthode GetServices sans aucun paramètre :

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetServices()
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetServices();
      
      System.ServiceProcess.ServiceController services[];
      services = System.ServiceProcess.ServiceController.GetServices();
      
    • Pour récupérer sur un ordinateur spécifique des services ne correspondant pas à des pilotes de périphérique, appelez la méthode GetServices et spécifiez l'ordinateur duquel vous souhaitez récupérer des informations dans un paramètre de chaîne :

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetServices( _
         "machinename")
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetServices(
                 "machinename");
      
    • Pour récupérer sur l'ordinateur local des services de pilotes de périphérique, appelez la méthode GetDevices sans aucun paramètre :

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetDevices()
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetDevices();
      
      
    • Pour récupérer des services de pilotes de périphérique sur un ordinateur spécifique, appelez la méthode GetDevices et spécifiez l'ordinateur duquel vous souhaitez récupérer des informations dans un paramètre de chaîne :

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetDevices( _
         "machinename")
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetDevices(
                 "machinename");
      

    Le code suivant montre comment récupérer un ensemble de services sur l'ordinateur local et afficher des informations sur chacun d'eux dans une zone de liste. Remarquez que la méthode GetServices retourne un tableau d'objets ServiceController. Chaque ServiceController retourné représente un service sur l'ordinateur concerné par la requête :

    Sub ListServices()
        Dim ListBox1 As ListBox
    
        Dim services() As System.ServiceProcess.ServiceController
        Dim i As Integer
        services = System.ServiceProcess.ServiceController.GetServices()
        ListBox1.Items.Clear()
        For i = 0 To services.Length - 1
            ListBox1.Items.Add(services(i).ServiceName)
        Next
    End Sub
    
     private void ListServices()
        {
            ListBox listBox1 = null;
    
            System.ServiceProcess.ServiceController[] services;
            services = System.ServiceProcess.ServiceController.GetServices();
            listBox1.Items.Clear();
            for (int i = 0; i < services.Length; i++)
            {
                listBox1.Items.Add(services[i].ServiceName);
            }
        }
    

Cet exemple de code est également disponible sous forme d'extrait de code IntelliSense Visual Basic. Dans le sélecteur d'extrait de code, il se trouve dans Système d'exploitation Windows > Services Windows. Pour plus d'informations, consultez Comment : insérer des extraits de code dans votre code (Visual Basic).

Voir aussi

Tâches

Comment : créer des instances du composant ServiceController

Comment : effectuer des tâches administratives sur des services

Concepts

Introduction à la communication avec des services existants