Cómo: Recuperar listas de servicios

Actualización: noviembre 2007

Puede utilizar el método GetServices de la clase ServiceController para recuperar una lista de los servicios en un equipo en particular. El método GetServices devuelve una matriz con todos los servicios disponibles en un equipo, excepto los asociados con controladores de dispositivos. Puede recuperar los servicios de los controladores de dispositivos mediante el método GetDevices.

Para ambos métodos, puede elegir un equipo específico acerca del cual le interesa recuperar información o no pasar parámetros a fin de recuperar sólo los servicios del equipo local.

Para recuperar una lista de servicios

  1. Cree una matriz de tipo ServiceController para que contenga los resultados de la consulta.

  2. Llame al método adecuado de la clase ServiceController y establezca los resultados en la matriz; utilice uno de los métodos siguientes:

    • Para recuperar servicios del equipo local que no pertenezcan a controladores de dispositivos, llame al método GetServices sin ningún parámetro:

      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();
      
    • Para recuperar servicios de un equipo específico que no pertenezcan a controladores de dispositivos, llame al método GetServices y especifique como parámetro de cadena el equipo del cual desea recuperar información:

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetServices( _
         "machinename")
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetServices(
                 "machinename");
      
    • Para recuperar servicios del equipo local que pertenezcan a controladores de dispositivos, llame al método GetDevices sin ningún parámetro:

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetDevices()
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetDevices();
      
      
    • Para recuperar servicios de un equipo específico que pertenezcan a controladores de dispositivos, llame al método GetDevices y especifique como parámetro de cadena el equipo del cual desea recuperar información:

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

    El código siguiente muestra cómo recuperar un conjunto de servicios del equipo local y mostrar información acerca de cada uno de ellos en un cuadro de lista. Observe que el método GetServices devuelve una matriz de los objetos ServiceController. Cada objeto ServiceController devuelto representa un servicio del equipo que se consulta:

    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);
            }
        }
    

Este ejemplo de código también está disponible como un fragmento de código de IntelliSense de Visual Basic. En el selector de fragmentos de código, se encuentra en Sistema operativo Windows > Servicios de Windows. Para obtener más información, vea Cómo: Insertar fragmentos de código en el código (Visual Basic).

Vea también

Tareas

Cómo: Crear instancias de componentes ServiceController

Cómo: Realizar tareas administrativas en los servicios

Conceptos

Introducción a la comunicación con servicios existentes