Bonjour, j'essaie d'executer un programme au même moment ( à la même heures),
mais avec le système ici il y a une dérive dans le temps petit a petit, et je
dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12
14h12 etc...
voici le code: (le tout dans un timer qui toune toute les trentes secondes)
a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer()
Const lngIntervalMinute As Long = 60
Static blnExecutionEnCours As Boolean
Static datDerniereExecution As Date
Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur
If blnExecutionEnCours Then Exit Sub
' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then
blnExecutionEnCours = True
' Je fais mon traitement
.......
Form1.Label2.Caption = Now
datDerniereExecution = Now
blnExecutionEnCours = False
End If
Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre
astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
mbfac
Bonjour
Je pense que c'est à cause des secondes sur la variable 'data de la derniere execution' il faudrai la ramener à la minute:00 tronquer les secondes et peut etre aussi mettre now dans un variable pour le test et la mémorisation de l'heure de la derniere execution un truc du genre...
a=now If DateDiff("n", datDerniereExecution, a) >= lngIntervalMinute Then
datDerniereExecution = int(a*24*60)/24/60
blnExecutionEnCours = True ' Je fais mon traitement
Cordialement
Michel BERTRAND
"michael" a écrit dans le message de news:
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer() Const lngIntervalMinute As Long = 60 Static blnExecutionEnCours As Boolean Static datDerniereExecution As Date Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur If blnExecutionEnCours Then Exit Sub ' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then blnExecutionEnCours = True ' Je fais mon traitement ....... Form1.Label2.Caption = Now datDerniereExecution = Now blnExecutionEnCours = False
End If Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..
merci d'avance
Bonjour
Je pense que c'est à cause des secondes sur la variable 'data de la derniere
execution' il faudrai la ramener à la minute:00
tronquer les secondes
et peut etre aussi mettre now dans un variable pour le test et la
mémorisation de l'heure de la derniere execution
un truc du genre...
a=now
If DateDiff("n", datDerniereExecution, a) >= lngIntervalMinute Then
datDerniereExecution = int(a*24*60)/24/60
blnExecutionEnCours = True
' Je fais mon traitement
Cordialement
Michel BERTRAND
"michael" <michael@discussions.microsoft.com> a écrit dans le message de
news: 89F53086-2BE2-43AE-B14B-72E608F0C0BD@microsoft.com...
Bonjour, j'essaie d'executer un programme au même moment ( à la même
heures),
mais avec le système ici il y a une dérive dans le temps petit a petit, et
je
dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12
14h12 etc...
voici le code: (le tout dans un timer qui toune toute les trentes
secondes)
a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer()
Const lngIntervalMinute As Long = 60
Static blnExecutionEnCours As Boolean
Static datDerniereExecution As Date
Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur
If blnExecutionEnCours Then Exit Sub
' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then
blnExecutionEnCours = True
' Je fais mon traitement
.......
Form1.Label2.Caption = Now
datDerniereExecution = Now
blnExecutionEnCours = False
End If
Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre
astuce piur y arriver... Je ne veux evidemment pas passer par le
scheduler..
Je pense que c'est à cause des secondes sur la variable 'data de la derniere execution' il faudrai la ramener à la minute:00 tronquer les secondes et peut etre aussi mettre now dans un variable pour le test et la mémorisation de l'heure de la derniere execution un truc du genre...
a=now If DateDiff("n", datDerniereExecution, a) >= lngIntervalMinute Then
datDerniereExecution = int(a*24*60)/24/60
blnExecutionEnCours = True ' Je fais mon traitement
Cordialement
Michel BERTRAND
"michael" a écrit dans le message de news:
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer() Const lngIntervalMinute As Long = 60 Static blnExecutionEnCours As Boolean Static datDerniereExecution As Date Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur If blnExecutionEnCours Then Exit Sub ' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then blnExecutionEnCours = True ' Je fais mon traitement ....... Form1.Label2.Caption = Now datDerniereExecution = Now blnExecutionEnCours = False
End If Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..
merci d'avance
Fred
michael a écrit :
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Bonjour, Déjà, si tu note la date de dernière exécution *avant* le traitement, tu auras moins de dérive. Mais le mieux serait de comparer Now avec les heures d'exécution prévues (ne pas procéder par cumul)
michael a écrit :
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures),
mais avec le système ici il y a une dérive dans le temps petit a petit, et je
dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12
14h12 etc...
voici le code: (le tout dans un timer qui toune toute les trentes secondes)
a noter que le calcul en question des donnée dure un petit temps...
Bonjour,
Déjà, si tu note la date de dernière exécution *avant* le traitement, tu
auras moins de dérive.
Mais le mieux serait de comparer Now avec les heures d'exécution prévues
(ne pas procéder par cumul)
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Bonjour, Déjà, si tu note la date de dernière exécution *avant* le traitement, tu auras moins de dérive. Mais le mieux serait de comparer Now avec les heures d'exécution prévues (ne pas procéder par cumul)
michael
merci je vais creuser dans cette direction
"Fred" a écrit :
michael a écrit : > Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), > mais avec le système ici il y a une dérive dans le temps petit a petit, et je > dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 > 14h12 etc... > voici le code: (le tout dans un timer qui toune toute les trentes secondes) > a noter que le calcul en question des donnée dure un petit temps...
Bonjour, Déjà, si tu note la date de dernière exécution *avant* le traitement, tu auras moins de dérive. Mais le mieux serait de comparer Now avec les heures d'exécution prévues (ne pas procéder par cumul)
merci je vais creuser dans cette direction
"Fred" a écrit :
michael a écrit :
> Bonjour, j'essaie d'executer un programme au même moment ( à la même heures),
> mais avec le système ici il y a une dérive dans le temps petit a petit, et je
> dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12
> 14h12 etc...
> voici le code: (le tout dans un timer qui toune toute les trentes secondes)
> a noter que le calcul en question des donnée dure un petit temps...
Bonjour,
Déjà, si tu note la date de dernière exécution *avant* le traitement, tu
auras moins de dérive.
Mais le mieux serait de comparer Now avec les heures d'exécution prévues
(ne pas procéder par cumul)
michael a écrit : > Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), > mais avec le système ici il y a une dérive dans le temps petit a petit, et je > dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 > 14h12 etc... > voici le code: (le tout dans un timer qui toune toute les trentes secondes) > a noter que le calcul en question des donnée dure un petit temps...
Bonjour, Déjà, si tu note la date de dernière exécution *avant* le traitement, tu auras moins de dérive. Mais le mieux serait de comparer Now avec les heures d'exécution prévues (ne pas procéder par cumul)
X
Bonjour, tu as une autre solution en langage système, mon bon ce n'est pas du VB, c'est l'API:
Private Declare Function GetTickCount Lib "Kernel32" () As Long variable_milisecondes_depuis_le_lancement_long = GetTickCount()
1 journée fait environ 86 millions (86.400.000 // 100e de secondes) Un long fait environ 2,15 milliards, ce qui fait 25 jours
Tu sais manier tout ça; a priori ça donera un truc du genre
Sub tempus() Dim heure_h as long heure_h = GetTickCount() heure_h = heure_h + 84400000 call exécution Do While heure_h <> GetTickCount() ' voir si ça marche ainsi... DoEvents Loop call tempus End Sub
'.......le tout dans une form invisible Sub Main() ' NON TESTE
------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Principe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "michael" a écrit dans le message de news:
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer() Const lngIntervalMinute As Long = 60 Static blnExecutionEnCours As Boolean Static datDerniereExecution As Date Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur If blnExecutionEnCours Then Exit Sub ' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then blnExecutionEnCours = True ' Je fais mon traitement ....... Form1.Label2.Caption = Now datDerniereExecution = Now blnExecutionEnCours = False
End If Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..
merci d'avance
Bonjour, tu as une autre solution en langage système, mon bon ce
n'est pas du VB, c'est l'API:
Private Declare Function GetTickCount Lib "Kernel32" () As Long
variable_milisecondes_depuis_le_lancement_long = GetTickCount()
1 journée fait environ 86 millions (86.400.000 // 100e de secondes)
Un long fait environ 2,15 milliards, ce qui fait 25 jours
Tu sais manier tout ça; a priori ça donera un truc du genre
Sub tempus()
Dim heure_h as long
heure_h = GetTickCount()
heure_h = heure_h + 84400000
call exécution
Do While heure_h <> GetTickCount() ' voir si ça marche ainsi...
DoEvents
Loop
call tempus
End Sub
'.......le tout dans une form invisible Sub Main() ' NON TESTE
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"michael" <michael@discussions.microsoft.com> a écrit dans le message de
news: 89F53086-2BE2-43AE-B14B-72E608F0C0BD@microsoft.com...
Bonjour, j'essaie d'executer un programme au même moment ( à la même
heures),
mais avec le système ici il y a une dérive dans le temps petit a petit, et
je
dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12
14h12 etc...
voici le code: (le tout dans un timer qui toune toute les trentes
secondes)
a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer()
Const lngIntervalMinute As Long = 60
Static blnExecutionEnCours As Boolean
Static datDerniereExecution As Date
Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur
If blnExecutionEnCours Then Exit Sub
' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then
blnExecutionEnCours = True
' Je fais mon traitement
.......
Form1.Label2.Caption = Now
datDerniereExecution = Now
blnExecutionEnCours = False
End If
Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre
astuce piur y arriver... Je ne veux evidemment pas passer par le
scheduler..
Bonjour, tu as une autre solution en langage système, mon bon ce n'est pas du VB, c'est l'API:
Private Declare Function GetTickCount Lib "Kernel32" () As Long variable_milisecondes_depuis_le_lancement_long = GetTickCount()
1 journée fait environ 86 millions (86.400.000 // 100e de secondes) Un long fait environ 2,15 milliards, ce qui fait 25 jours
Tu sais manier tout ça; a priori ça donera un truc du genre
Sub tempus() Dim heure_h as long heure_h = GetTickCount() heure_h = heure_h + 84400000 call exécution Do While heure_h <> GetTickCount() ' voir si ça marche ainsi... DoEvents Loop call tempus End Sub
'.......le tout dans une form invisible Sub Main() ' NON TESTE
------ Site logiciels http://irolog.free.fr Mail http://irolog.free.fr/ecrire/index.htm Site perso http://irolog.free.fr/joe/index.htm Principe d'utilisation des news Groups http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm ------------------------------------------------------------------------------------ "michael" a écrit dans le message de news:
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer() Const lngIntervalMinute As Long = 60 Static blnExecutionEnCours As Boolean Static datDerniereExecution As Date Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur If blnExecutionEnCours Then Exit Sub ' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then blnExecutionEnCours = True ' Je fais mon traitement ....... Form1.Label2.Caption = Now datDerniereExecution = Now blnExecutionEnCours = False
End If Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..
merci d'avance
François Ranwez
Tu peux utiliser les tâches planifiées de Windows ?!
"michael" a écrit dans le message de news:
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer() Const lngIntervalMinute As Long = 60 Static blnExecutionEnCours As Boolean Static datDerniereExecution As Date Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur If blnExecutionEnCours Then Exit Sub ' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then blnExecutionEnCours = True ' Je fais mon traitement ....... Form1.Label2.Caption = Now datDerniereExecution = Now blnExecutionEnCours = False
End If Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..
merci d'avance
Tu peux utiliser les tâches planifiées de Windows ?!
"michael" <michael@discussions.microsoft.com> a écrit dans le message de
news: 89F53086-2BE2-43AE-B14B-72E608F0C0BD@microsoft.com...
Bonjour, j'essaie d'executer un programme au même moment ( à la même
heures),
mais avec le système ici il y a une dérive dans le temps petit a petit, et
je
dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12
14h12 etc...
voici le code: (le tout dans un timer qui toune toute les trentes
secondes)
a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer()
Const lngIntervalMinute As Long = 60
Static blnExecutionEnCours As Boolean
Static datDerniereExecution As Date
Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur
If blnExecutionEnCours Then Exit Sub
' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then
blnExecutionEnCours = True
' Je fais mon traitement
.......
Form1.Label2.Caption = Now
datDerniereExecution = Now
blnExecutionEnCours = False
End If
Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre
astuce piur y arriver... Je ne veux evidemment pas passer par le
scheduler..
Tu peux utiliser les tâches planifiées de Windows ?!
"michael" a écrit dans le message de news:
Bonjour, j'essaie d'executer un programme au même moment ( à la même heures), mais avec le système ici il y a une dérive dans le temps petit a petit, et je dois vraiment pouvoir le faire tourner à une heure fixe, ex: 12h12 13h12 14h12 etc... voici le code: (le tout dans un timer qui toune toute les trentes secondes) a noter que le calcul en question des donnée dure un petit temps...
Private Sub Timer1_Timer() Const lngIntervalMinute As Long = 60 Static blnExecutionEnCours As Boolean Static datDerniereExecution As Date Static blnNotificationEnCours As Boolean
'On Error GoTo Erreur If blnExecutionEnCours Then Exit Sub ' On fait une vérification toutes les 60 minutes
If DateDiff("n", datDerniereExecution, Now) >= lngIntervalMinute Then blnExecutionEnCours = True ' Je fais mon traitement ....... Form1.Label2.Caption = Now datDerniereExecution = Now blnExecutionEnCours = False
End If Exit Sub
Mais peux etre existe t'il une autre methode que par timer ou un autre astuce piur y arriver... Je ne veux evidemment pas passer par le scheduler..