[R] Timer sans Boucle qui ne consomme pas

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

[R] Timer sans Boucle qui ne consomme pas

#1

Message par jajar »

Salut, j'aimerai savoir comment faire, pour que toutes les 20 minutes, mon script autoit lance des instructions sans que ca consomme du CPU, merci.
Modifié en dernier par jajar le lun. 03 mai 2010 21:27, modifié 1 fois.
Avatar du membre
aikiox
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 17 sept. 2009 13:04
Status : Hors ligne

Re: [..] Timer sans Boucle qui ne consomme pas

#2

Message par aikiox »

Bonjour,

Tu peux lancer une tache planifié qui execute ton scripte toute les 20 minutes.

Cordialement
Romain
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Timer sans Boucle qui ne consomme pas

#3

Message par Tlem »

De par la conception d'un ordinateur, il est impossible de lancer quoi que ce soit sans que le processeur ne soit sollicité (même tréééés légèrement).

Je suppose que votre problème est que le script que vous avez conçu fonctionne en boucle et consomme une quantité non négligeable de ressources processeur. :roll:

Vous avez plusieurs solutions (dont celle indiquée par aikiox).
1- Faire une boucle d'attente qui vérifie une exécution toutes les 20Mn, en n'oubliant pas de mettre une pause de 1s (Sleep(1000)) afin de ne pas trop solliciter le CPU.

2- Faire comme dans le 1, mais en utilisant la fonction AdlibRegister afin d'exécuter le code toutes les 20Mn (AdlibRegister("MaFonction", 1200000)).

Bon code. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [..] Timer sans Boucle qui ne consomme pas

#4

Message par jajar »

ok, merci !
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [..] Timer sans Boucle qui ne consomme pas

#5

Message par jajar »

les sleep m' ont aidé, j'avais entendu parler d'une fonction timer si quelqu'un connait.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Timer sans Boucle qui ne consomme pas

#6

Message par Tlem »

Bonsoir.
J'ai juste fait une petite correction dans ce que j'ai dit précédemment, car j'avais dit une grosse bêtise en donnant cette ligne de code :

Code : Tout sélectionner

AdlibRegister("MaFonction", 20000)
et en disant qu'elle permettait d'exécuter MaFonction toutes les 20 minutes.

Grosse erreur de calcul de ma part, car 1000 ms = 1 s, donc 60 s (soit 1 minute) font 60000 ms et donc 20 Mn donnent 1000 * 60 * 20, ce qui nous donne 1200000 ms ... :oops:

En ce qui concerne la fonction Timer, elle s'utilise comme ceci :

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.

While 1
    sleep(1000)
    If TimerDiff($begin) > 1200000 Then ExitLoop ; Si le timer dépasse 20 Mn, on sort de la boucle While.
WEnd

MsgBox(0,"","La boucle a duré 20 Mn")
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [R] Timer sans Boucle qui ne consomme pas

#7

Message par jajar »

ok ^^ merci !
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [..] Timer sans Boucle qui ne consomme pas

#8

Message par ptifou78 »

En ce qui concerne la fonction Timer, elle s'utilise comme ceci :

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.

While 1
    sleep(1000)
    If TimerDiff($begin) > 1200000 Then ExitLoop ; Si le timer dépasse 20 Mn, on sort de la boucle While.
WEnd

MsgBox(0,"","La boucle a duré 20 Mn")
[/quote]

Voila j'aurais une question par rapport a ce code es-ce que

Code : Tout sélectionner

sleep(1000)
Va s'appliquer a tout le code ou juste a la boucle par exemple on aurais

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.
While 1
MsgBox(0,"","MsgBox pendant 20 Mn")
Wend

While 1
    sleep(1000)
    If TimerDiff($begin) > 1200000 Then ExitLoop ; Si le timer dépasse 20 Mn, on sort de la boucle While.
WEnd
Exit
le message MsgBox pendant 20 Mn va s'afficher tout le temps ou alors ça va faire attendre 1sec puis après afficher le Msgbox ?
jajar
Niveau 4
Niveau 4
Messages : 59
Enregistré le : sam. 03 avr. 2010 15:20
Status : Hors ligne

Re: [R] Timer sans Boucle qui ne consomme pas

#9

Message par jajar »

non, la avec ce code tu risque d'afficher le message box a l'infini,

car tu as mis cette bouche avant le timer :

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.
While 1
MsgBox(0,"","MsgBox pendant 20 Mn")
Wend
si tu veux que le msgbox s'affiche toute les 20 min et attendre une seconde avant de se lancer met le après le sleep de la 2 éme boucle.

par contre je crois pas qu'il soit possible de crée 2 boucle infini dans le même code, car ca ne passera pas a la 2 éme vu que l'autre va s'exécuter encore et encore...
ptifou78
Niveau 3
Niveau 3
Messages : 46
Enregistré le : jeu. 29 avr. 2010 23:11
Status : Hors ligne

Re: [R] Timer sans Boucle qui ne consomme pas

#10

Message par ptifou78 »

Ok merci des précision ;)
Répondre