Service windows qui se lance au démarrage mais ne fait rien!
terminathan
Messages postés7Date d'inscriptionlundi 9 mars 2009StatutMembreDernière intervention 3 septembre 2009
-
14 mai 2009 à 14:14
terminathan
Messages postés7Date d'inscriptionlundi 9 mars 2009StatutMembreDerniè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
A voir également:
Service windows qui se lance au démarrage mais ne fait rien!
elguevel
Messages postés718Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention22 novembre 20163 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