Service windows qui se lance au démarrage mais ne fait rien!

terminathan Messages postés 7 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 3 septembre 2009 - 14 mai 2009 à 14:14
terminathan Messages postés 7 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 3 septembre 2009 - 3 sept. 2009 à 18:57
Bonjour!

Je suis en train de faire un service Windows ayant pour but de lancer toutes les deux minutes un .bat et un .VBs.
Grâce à Renfield qui m'a aidé sur mon sujet précédent, lors de mes test le bat et le VBs se lancent sans problème.
J'ai créé à l'aide de visual studio un installateur pour mon service, celui-ci s'installe bien et je le retrouve dans mes service au démarrage de windows.
Seulement, même s'il semble démarré il refuse de lancer les scripts.
Lorsque je lance le service en manuel, malgré un message d'erreur me disant que le service doit être installé, toutes les deux minutes mes fichiers se lancent bien et une message box que j'ai ajouté confirme bien l'exécution... En revanche, si on ferme la boite de dialogue annonçant l'erreur, le service semble s'arrêter et plus rien.
Donc en résumé, mon service est annoncé comme démarré (j'ai bien vérifié dans la liste des services) mais rien ne se passe...

Voici le code de mon service:




Public Class ServiceScriptLauncher
    Protected Overrides Sub OnStart(ByVal args() As String)
        Timer.Enabled = True
    End Sub
    Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
        Process.Start("c:\new.vbs")
        Process.Start("c:\permissions.bat")
        MsgBox("Check succesfull. Next in 2 minutes.", MsgBoxStyle.Information, "Check complete")
    End Sub
    Protected Overrides Sub OnStop()
        Timer.Enabled = False
    End Sub
End Class



Merci d'avance pour l'aide qui pourra m'être apportée!
Jonathan

2 réponses

elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
3 sept. 2009 à 15:31
Salut,

Quel Timer as tu utilisé ?

Car il ne fait pas utiliser le composant proposé dans la boite à outil.

Il faut que tu utilises la classes "System.Timers.Timer"

Exemple :
---------

' Tu importes
Imports System.Timers

' Tu declares (avec WhitEvents pour utiliser l'evenement)
Private WithEvents MonTimer As Timer

' Tu instancies
Public Sub New()

MyBase.New()
InitializeComponent()
MonTimer = New Timer(10000) ' avec le delai voulu

End Sub

' Tu demarre le timer avec le service
Protected Overrides Sub OnStart(ByVal args() As String)
MonTimer.start()
End Sub

' Idem pour stop, je te laisse l'ecrire

' Et puis la procedure rattaché a ton timer
Private Sub MesActions(ByVal sender As Object, ByVal e As Timers.ElapsedEventArgs) Handles MonTimer.Elapsed

' Ton code ici !

End sub


Essais déja çà ...

A+
0
terminathan Messages postés 7 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 3 septembre 2009
3 sept. 2009 à 18:57
Wahoo une réponse après tant de temps!!


J'ai en effet utilisé le timer de la boîte à outil!

Je teste ta solution dès ce weekend!

En tout cas merci elguevel!
0
Rejoignez-nous