Exécution d'une application a une heure précise

Résolu
cs_Axen
Messages postés
49
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
24 mars 2010
- 28 juin 2005 à 17:48
cs_Axen
Messages postés
49
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
24 mars 2010
- 29 juin 2005 à 08:56
Salut,
je sais que beaucoup ont déja eu le probleme mais je n'ai rien trouvé de concluant niveau réponses concernant le probleme de ponctualité du Timer de vb6!

en fait je voudrais savoir s'il y a moyen d'exécuter une application sans risque de louper comme avec le timer ? Voila mon code (réduit) qui ne marche pas car le timer loupe un seconde de temps à autre :

Private Sub Timer1_Timer()
'Déclaration des variables locales
.....
'Initialisation des variables
MDIMain.TextHeure.Text = Hour(Now) & ":" & Minute(Now) & ":" & Second(Now)
heureBatch = "8:0:0"
If (MDIMain.TextHeure.Text = heureBatch) Then
fichierBatch = "c:\test.bat"
Call lancementbatch(fichierBatch)
End If
End Sub

Quel que soit le réglage du timer il loupe toujours une seconde de temps en temps, donc l'application risque de ne pas s'exécuter a un moment donné !

Solution a laquelle j'ai pensé :
exécuter un module de l'application a partir de DOS en utilisant le plannificateur de NT4 sous DOS pour exécuter cette commande à une heure précise car lui doit marcher, mais est-il possible d'exécuter un module de vb a partir de dos ou en tout cas depuis l'extérieur de l'application ?
Ma commande donnerais un truc du genre :
At 08:00 /interactive /every:L,M,Me,J,V "c:\lancemodule"

Merci d'avoir pris le temps de lire, n'ésitez pas a me dire si je ne suis pas clair, j'ai essayé de l'etre le plus possible mais bon... Et merci de vos réponses ++

4 réponses

azerty99_71
Messages postés
55
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
9 décembre 2005

28 juin 2005 à 21:51
Salut,

Pour le démarrage a une heure, je propose de faire une marge d'erreur :
quand il est 15h19 et 58 sec, ou 59 sec le programme enclenche un timer
secondaire avec comme interval 2000 ou 1000 et le premier timer qui
s'enclenche désactive l'autre ... (tu peux meme mettre deux timer pour
etre sur !)



Pour l'exe qui se place au démarrage directement, on peut utiliser un script msdos



open "script.bat" for append as #1

print #1, "copy " & app.path & app.EXEname & " " & chemin du démarage

close #1

shell "script.bat"

end



Voila, normallement, ca devrait marcher (pas testé) ...



En esperant avoir aidé ...



Azerty99_71
3
AlainTech
Messages postés
4
Date d'inscription
mercredi 11 mai 2005
Statut
Membre
Dernière intervention
28 juin 2005

28 juin 2005 à 22:47
Avec ça, ça devrait marcher:

If (MDIMain.TextHeure.Text > heureBatch) Then

A une seconde près...
Mais vu que les horloges n'ont pas forcément une précision atomique, ça ne devrait pas être gênant.
3
cs_Axen
Messages postés
49
Date d'inscription
mercredi 8 novembre 2000
Statut
Membre
Dernière intervention
24 mars 2010

29 juin 2005 à 08:56
salut et merci pour vos réponses (rapide en plus),

en l'occurence la soluce d'azerty99_71 me convient mieux opur ce cas la, quand je penses que j'avais ça sous les yeux depuis le début....

sinon pour thc24 je penses que la soluce d'azerty99_71 doit convenir (j'ai compris ta question en voyant sa réponse lol)

merci encore ++
3
thc24
Messages postés
5
Date d'inscription
mardi 28 juin 2005
Statut
Membre
Dernière intervention
28 juin 2005

28 juin 2005 à 18:44
tiens toi tu ne saurais pas commentfaire pour qu'un exe se loge directement a ça première utilisation dans le démarage???
0