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
Créez un tableau de type ServiceController destiné à accueillir les résultats de votre requête.
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