Lancement d'une application externe avec un temporisateur et un intervalle varia
remilafouine
Messages postés32Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 juin 2007
-
22 août 2005 à 22:05
remilafouine
Messages postés32Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 juin 2007
-
27 août 2005 à 00:21
Bonjour à tous !
Je sais que ce genre de questions existent déjà, mais je n'ai pas réussi à utiliser ce que j'ai trouvé...
Comme je le dit dans le sujet, je voudrais lancer une application externe (c:\test.bat) à intervalles réguliers, et en modifiant cet intervalle... Voici la liste des composants et leur nom :
- NumericUpDown1 => permet de modifier l'intervalle en minutes
- Timer1 => c'est le timer de mon programme
Je sais aussi que l'intervalle doit etre en milisecondes, et ne dois pas dépasser 60s soit 1min.
Je pense qu'il faudrait demander à Timer1 de se répéter le nombre de fois inscrit dans NumericUpDown1, et en régant son intervalle sur 1min.
Ce que j'ai déja fait, c'est d'invoquer le Timer grace à ce code :
Imports System
Imports System.Timers
Imports System.Threading
Public Class Timer1
Public Shared Sub Main()
Dim aTimer As New System.Timers.Timer
AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
' Set the Interval to 5 seconds.
aTimer.Interval = 5000
aTimer.Enabled = True
End Sub
Private Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
Shell("c:\test.bat")
End Sub
End Class
Logiquement, avec ce code, l'application devrait se lancer au moins une fois, mais elle ne se lance jamais...
J'espère que quelqu'un pourra m'aider... Merci à tous !!
A voir également:
Lancement d'une application externe avec un temporisateur et un intervalle varia
remilafouine
Messages postés32Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 juin 20071 22 août 2005 à 22:17
Désolé, le code exact est :
Imports System
Imports System.Timers
Imports System.Threading
**********************************
Code de la fenêtre Form1
**********************************
Public Shared Sub Main()
Dim aTimer As New System.Timers.Timer
AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
' Set the Interval to 5 seconds.
aTimer.Interval = 5000
aTimer.Enabled = True
End Sub
Private Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
Shell("c:\test.bat")
End Sub
End Class
Normalement, l'application devrait se lancer toutes les 5 secondes dans cet exemple, mais elle ne se lance pas du tout...
Et encore plus bizarre, mon programme s'ouvre et se referme dessuite... et elle ne lance meme pas l'application externe...
remilafouine
Messages postés32Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 juin 20071 23 août 2005 à 14:43
Tu veux dire que je dois remplacer le code précédent par celui la ?
J'ai essayé de remplacer la partie Private Shared Sub... de mon code, mais la fenêtre ne se lance pas...
Enfin, si, elle se lance, mais je n'ai rien à mon écran, puis l'application se termine toute seule et je reviens automatiquement à Visual Stuido .Net...
domsig
Messages postés125Date d'inscriptionlundi 6 septembre 2004StatutMembreDernière intervention11 mai 2010 23 août 2005 à 17:27
tiens voilà ton code tel que tu l'as exposé ci-dessus, modifié comme je pense qu'il doit l'être :
Imports System
Imports System.Timers
Imports System.Threading
**********************************
Code de la fenêtre Form1
**********************************
Public Shared Sub Main()
Dim aTimer As New System.Timers.Timer
AddHandler aTimer.Elapsed, AddressOf OnTimedEvent
' Set the Interval to 5 seconds.
aTimer.Interval = 5000
aTimer.Enabled = True
End Sub
Private Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
dim x as variant
x = Shell("c:\test.bat")
End Sub
End Class
voilà j'espère que ça marche sinon n'hésite pas j'ai vb.net au bureau...
Vous n’avez pas trouvé la réponse que vous recherchez ?
remilafouine
Messages postés32Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 juin 20071 23 août 2005 à 21:50
J'ai essayé, mais ca ne marche toujours pas...
Quand je presse la touche F5 pour tester l'application, Visual Studio
.Net 2003 se met en mode "Lecture Seule" comme si il lançait
l'application, mais revient dessuite en mode "Edition", et ne lance pas
l'application...
J'ai essayé de la lancer manuellement en allant dans Mes Documents, mais l'application se referme des que je la lance...
Peut être que ça vient de mon système d'exploitation... J'ai Windows
Codename Longhorn Build 4074... C'est peut être un imcompatibilité au
niveau du Framework...
remilafouine
Messages postés32Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention11 juin 20071 27 août 2005 à 00:21
J'ai essayé de faire une action en boucle.Voila le code que j'ai utilisé :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim test, message
test = Shell("c:\test.bat")
message = Shell("c:\message.bat")
boucle:
test.Run()
test.Sleep(5000)
message.Run()
message.Sleep(10000)
Goto boucle
End Sub
Ce qui est certain, c'est que j'ai fait une grosse bétise... L'application s'est lancée, et a démarré toutes les lignes de commande sans s'arréter, en boucle, sans attendre les 5 et 10 secondes...
En gros, plantage du PC car ressources utilisées à 100%, et 2590 Mo de mémoire (physique + virtuelle) utilisée sur 2000 environ... Résultat, un reboot forcé...