Condividi tramite


Procedura: recuperare gli elenchi dei servizi

Aggiornamento: novembre 2007

È possibile utilizzare il metodo GetServices della classe ServiceController per recuperare un elenco dei servizi su un determinato computer. Il metodo GetServices restituisce una matrice di tutti i servizi disponibili su un computer, eccetto quelli associati ai driver di periferica. È possibile recuperare i servizi dei driver di periferica mediante il metodo GetDevices.

Per entrambi i metodi, è possibile scegliere un determinato computer di cui si desidera recuperare le informazioni o non passare alcun parametro per recuperare solo i servizi sul computer locale.

Per recuperare un elenco di servizi

  1. Creare una matrice di tipo ServiceController che contenga i risultati della query.

  2. Chiamare il metodo appropriato della classe ServiceController e impostare i risultati nella matrice, in uno dei modi indicati di seguito.

    • Per recuperare i servizi dei driver non di periferica dal computer locale, chiamare il metodo GetServices senza parametri:

      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();
      
    • Per recuperare i servizi dei driver non di periferica da un computer specifico, chiamare il metodo GetServices e specificare come parametro di stringa il computer dal quale recuperare le informazioni:

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetServices( _
         "machinename")
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetServices(
                 "machinename");
      
    • Per recuperare i servizi dei driver di periferica dal computer locale, chiamare il metodo GetDevices senza parametri:

      Dim services() As System.ServiceProcess.ServiceController
      services = System.ServiceProcess.ServiceController.GetDevices()
      
           System.ServiceProcess.ServiceController[] services;
              services = System.ServiceProcess.ServiceController.GetDevices();
      
      
    • Per recuperare i servizi dei driver di periferica da un computer specifico, chiamare il metodo GetDevices e specificare come parametro di stringa il computer dal quale recuperare informazioni:

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

    Nel codice riportato di seguito viene illustrato come recuperare un insieme di servizi dal computer locale e visualizzare le informazioni su ciascuno di essi in una casella di riepilogo. Tenere presente che il metodo GetServices restituisce una matrice di oggetti ServiceController. Ciascun oggetto ServiceController restituito rappresenta un servizio del computer dal quale si desidera recuperare informazioni:

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

Questo esempio di codice è disponibile anche come frammento di codice IntelliSense di Visual Basic ed è presente nella casella di selezione dei frammenti di codice in Sistema operativo Windows > Servizi Windows. Per ulteriori informazioni, vedere Procedura: inserire frammenti nel codice (Visual Basic).

Vedere anche

Attività

Procedura: creare istanze del componente ServiceController

Procedura: eseguire attività amministrative relative ai servizi

Concetti

Introduzione alla comunicazione con i servizi esistenti