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 :
- Public ServiceAlias As New System.ServiceProcess.ServiceController
- Public EcouteService As New System.ServiceProcess.ServiceBase
- Public TabArgs(1) As String
- Private Sub Bouton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Bouton.Click
- Dim LeBouton As Windows.Forms.Button = sender
- ' Lancement du service avec l'action verifie pour l'exe cliqué
- TabArgs(0) = "verifie"
- TabArgs(1) = LeBouton.Tag
- ServiceAlias.MachineName = "."
- ServiceAlias.ServiceName = "Alias"
- EcouteService.ServiceName = "Alias"
- ServiceAlias.Start(TabArgs)
- While Not ServiceAlias.Status.Equals(System.ServiceProcess.ServiceControllerStatus.Stopped)
- ServiceAlias.Refresh()
- End While
- MsgBox(EcouteService.ExitCode)
- End Sub
|
et dans mon service :
Code :
- Protected Overrides Sub OnStop()
- Me.ExitCode = 42
- ' Ajoutez ici le code pour effectuer les destructions nécessaires à l'arrêt de votre service.
- 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