Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1658 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] [VB.NET] Récupérer le code de sortie d'un service Windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] [VB.NET] Récupérer le code de sortie d'un service Windows

n°1830286
clem_71
Posté le 22-12-2008 à 09:50:12  profilanswer
 

Bonjour,
 
Dans une application tierce, je lance un service Windows personnalisé.
 
Je souhaite que ce service renvoie des codes, et qu'ils soient analysées par l'application tierce.
 
Ma question est donc double :
 
- comment renvoyer des codes avec le service, dans la fonction onStop() par exemple ?
- comment recevoir ce code dans mon application qui lance le service ?
 
J'ajoute quelques informations :
 
- Le service que je lance doit obligatoirement prendre des paramètres. Je suis donc obligé de le lancer via un System.ServiceProcess.ServiceController, avec un tableau d'arguments. Je ne peux donc pas utiliser le System.ServiceProcess.ServiceBase avec la méthode Run, qui ne permet pas le passage d'arguments.
 
- J'ai essayé une colaboration infructueuse entre System.ServiceProcess.ServiceController et System.ServiceProcess.ServiceBase, le premier pour lancer le service, le second pour capter le ExitCode.
 
Voici mon code côté application tierce :
 
Sur un clic ...

Code :
  1. Public ServiceAlias As New System.ServiceProcess.ServiceController
  2.     Public EcouteService As New System.ServiceProcess.ServiceBase
  3.     Public TabArgs(1) As String
  4.     Private Sub Bouton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bouton.Click
  5.         Dim LeBouton As Windows.Forms.Button = sender
  6.         ' Lancement du service avec l'action verifie pour l'exe cliqué
  7.         TabArgs(0) = "verifie"
  8.         TabArgs(1) = LeBouton.Tag
  9.         ServiceAlias.MachineName = "."
  10.         ServiceAlias.ServiceName = "Alias"
  11.         EcouteService.ServiceName = "Alias"
  12.         ServiceAlias.Start(TabArgs)
  13.         While Not ServiceAlias.Status.Equals(System.ServiceProcess.ServiceControllerStatus.Stopped)
  14.             ServiceAlias.Refresh()
  15.         End While
  16.         MsgBox(EcouteService.ExitCode)
  17.     End Sub


 
 
et dans mon service :

Code :
  1. Protected Overrides Sub OnStop()
  2.         Me.ExitCode = 42
  3.         ' Ajoutez ici le code pour effectuer les destructions nécessaires à l'arrêt de votre service.
  4.     End Sub


 
Le MsgBox de l'application tierce me renvoit inlassablement 0.
 
Merci pour votre aide.


Message édité par clem_71 le 15-01-2009 à 13:52:57
mood
Publicité
Posté le 22-12-2008 à 09:50:12  profilanswer
 

n°1830622
satirik
Posté le 22-12-2008 à 22:49:35  profilanswer
 

j'y connais strictement rien en .net mais ton code me parait bizarre, ton EcouteService est lié à l'autre via le ServiceName ?? je comprend pas trop ce que t'essaye de faire, ca me parait bizarre, mais ensuite tu ne lance que l'autre ServiceAlias, c'est peut etre celui la qui t'interesse nan ? MsgBox(ServiceAlias.ExitCode) ?


Message édité par satirik le 22-12-2008 à 22:50:29
n°1830665
clem_71
Posté le 23-12-2008 à 09:37:51  profilanswer
 

Bonjour,
 
A priori oui, pour la classe ServiceBase (Cf. EcouteService dans mon code), il suffit de stipuler le ServiceName pour pouvoir gérer le service.
 
Ta deuxième remarque est pertinente, mais la classe ServiceController (Cf. ServiceAlias dans mon code) ne dispose pas de la propriété ExitCode.

n°1833919
clem_71
Posté le 05-01-2009 à 09:33:30  profilanswer
 

Bonjour, et mes meilleurs à tous et à toutes pour cette nouvelle année.
 
Je reviens à la charge pour ma question :)
 
Merci

n°1838287
clem_71
Posté le 15-01-2009 à 13:53:26  profilanswer
 

Bonjour,
 
Résolu, on ne peut pas.
 
Il faut utiliser les canaux nommés "named pipes"


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [Résolu] [VB.NET] Récupérer le code de sortie d'un service Windows

 

Sujets relatifs
Modification de code PHP pour ajouter une conditionidées de projet pour collégiens très jeunes [résolu]
Récupérer texte Textbox dynamique en VBA[c++] Récupérer une mac adresse (error au link)
[Résolu] - [SQL] count(*) pour des attributs différentsEXCEl : Condition SI ==> Regroupez des pays selon un Code
Expressions Règulières avec VS .Net 2003[VB.NET] Communiquer avec un service Windows par l'envoi de paramètres
Plus de sujets relatifs à : [Résolu] [VB.NET] Récupérer le code de sortie d'un service Windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR