[R] Timer sans Boucle qui ne consomme pas
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Timer sans Boucle qui ne consomme pas
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.
Re: [..] Timer sans Boucle qui ne consomme pas
Bonjour,
Tu peux lancer une tache planifié qui execute ton scripte toute les 20 minutes.
Cordialement
Romain
Tu peux lancer une tache planifié qui execute ton scripte toute les 20 minutes.
Cordialement
Romain
- Tlem
- 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
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.
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.
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.
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é".
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é".
Re: [..] Timer sans Boucle qui ne consomme pas
ok, merci !
Re: [..] Timer sans Boucle qui ne consomme pas
les sleep m' ont aidé, j'avais entendu parler d'une fonction timer si quelqu'un connait.
- Tlem
- 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
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 :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 ...
En ce qui concerne la fonction Timer, elle s'utilise comme ceci :
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)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 ...
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é".
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é".
Re: [R] Timer sans Boucle qui ne consomme pas
ok ^^ merci !
Re: [..] Timer sans Boucle qui ne consomme pas
En ce qui concerne la fonction Timer, elle s'utilise comme ceci :[/quote]
Voila j'aurais une question par rapport a ce code es-ce que
Va s'appliquer a tout le code ou juste a la boucle par exemple on aurais
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 ?
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")Voila j'aurais une question par rapport a ce code es-ce que
Code : Tout sélectionner
sleep(1000)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
ExitRe: [R] Timer sans Boucle qui ne consomme pas
non, la avec ce code tu risque d'afficher le message box a l'infini,
car tu as mis cette bouche avant le timer :
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...
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")
Wendpar 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...
Re: [R] Timer sans Boucle qui ne consomme pas
Ok merci des précision 


