[..] Faires cohabiter plusieurs boucles via des fonctions
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.
[..] Faires cohabiter plusieurs boucles via des fonctions
Bonjour à tous,
J’ai 2 scripts simples contenant 1 boucle while wend, chacune s'exécutant à un intervalle de temps donné.
J’aimerais les fusionner, je dois donc passer par des fonctions, comment dois-je les déclarer pour qu’elles continuent de fonctionner simultanément ?
Merci par avance pour votre aide.
J’ai 2 scripts simples contenant 1 boucle while wend, chacune s'exécutant à un intervalle de temps donné.
J’aimerais les fusionner, je dois donc passer par des fonctions, comment dois-je les déclarer pour qu’elles continuent de fonctionner simultanément ?
Merci par avance pour votre aide.
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: [..] Faires cohabiter plusieurs boucles via des fonctions
Si c'est des boucles "lentes", tu peux soit mettre un compteur dans la boucle et des condition pour executer le code
soit passer par la fonction AdlibEnable()
Code : Tout sélectionner
while 1
Sleep(1000)
$i = $i+1
code_a_executer_toutes_les_secondes()
If $i = 10 Then
$i = 0
code_a_executer_toutes_les_dix_secondes()
EndIf
wend► Afficher le texteOu bien
Signez ici
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Faires cohabiter plusieurs boucles via des fonctions
Je dirais qu'un bout de code ne ferait pas de mal. Cela éviterait des questions inutiles et des réponses qui peuvent ne pas convenir.
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: [..] Faires cohabiter plusieurs boucles via des fonctions
Code : Tout sélectionner
Run(xxx.exe)
WinWaitActivate("xxxx", "")
Global $Paused
HotKeySet( "{PAUSE}", "Pause")
HotKeySet( "{ESC}", "Sortir")
Func Pause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('EN PAUSE',0,0)
WEnd
ToolTip("")
EndFunc
Func Sortir()
Exit 0
EndFunc
While 1
Send("{F5}")
Sleep(xxxx)
Wend- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Faires cohabiter plusieurs boucles via des fonctions
Dans l'optique de l'évolution de votre menu, je pense que le plus simple serait de faire une GUI ou un menu systray, et de permettre la sélection du programme à rafraîchir (enregistrement de cette info dans un .ini).
Une fois vos programme sélectionner, une boucle vient lire la liste des programmes à rafraîchir et fait ce qu'elle doit faire.
Une fois vos programme sélectionner, une boucle vient lire la liste des programmes à rafraîchir et fait ce qu'elle doit faire.
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: [..] Faires cohabiter plusieurs boucles via des fonctions
bonne idée, je vais creuser cette option.
-
SagePourpre
- Niveau 7

- Messages : 442
- Enregistré le : dim. 06 juil. 2008 09:11
- Status : Hors ligne
Re: [..] Faires cohabiter plusieurs boucles via des fonctions
Code : Tout sélectionner
$refresh = ""
$timer = TimerInit()
$ini = "settings.ini"
$iniload = IniReadSectionNames($ini)
While 1
$time = Round(TimerDiff($timer) / 60000, 0)
For $i = 1 To $iniload
If IsInt($time / $refresh) Then
$refresh = IniRead($ini, $iniload[$i], "refreshtime", "5")
; Code pour rafraîchir l'application
EndIf
Next
Sleep(20000)
WEndDans le fichier ini
- chaque section représente un programme
on rajoute refreshtime= "X minutes"
Au début du script, un minuteur (timer) est initialisé.
Chaque 20 secondes, le script lit le fichier ini et pour chaque programmes, il vérifie le temps de rafraîchissement
en comparaison avec le minuteur. Si le résultat du minuteur divisé par le temps de rafraîchissement donne un nombre
entier, cela signifie qu'il est temps d'exécuter le code correspondant.
Simple et efficace...
Modifié en dernier par Tlem le sam. 06 juin 2009 12:01, modifié 1 fois.
Raison : Remise en forme du code
Raison : Remise en forme du code
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
plus belle vue du haut de son Pouf = )
Re: [..] Faires cohabiter plusieurs boucles via des fonctions
Vraiment intéressant comme début, c’est vers un script comme cela que je m’orientais.
Actuellement j’ai 3 applications à superviser et chacune ayant 1 ou 2 hotkeys pour rafraichir l’affichage.
Dès que j’arrive à quelque chose qui tourne correctement je le poste ici. A voir après pour une GUI permettant de sélectionner les applis, et donc les scripts à exécuter.
Actuellement j’ai 3 applications à superviser et chacune ayant 1 ou 2 hotkeys pour rafraichir l’affichage.
Dès que j’arrive à quelque chose qui tourne correctement je le poste ici. A voir après pour une GUI permettant de sélectionner les applis, et donc les scripts à exécuter.
-
SagePourpre
- Niveau 7

- Messages : 442
- Enregistré le : dim. 06 juil. 2008 09:11
- Status : Hors ligne
Re: [..] Faires cohabiter plusieurs boucles via des fonctions
Oui... Le bout de code que j'ai mis en exemple te permettrait de faire cela relativement facilement...
Par contre, une petite précision s'impose.
J'ai fais une petite erreur que je viens de remarquer.
Cette ligne
devrait se trouver avant le If Then et non pas à l'intérieur. 
Par contre, une petite précision s'impose.
J'ai fais une petite erreur que je viens de remarquer.
Cette ligne
Code : Tout sélectionner
$refresh = IniRead($ini, $iniload[$i], "refreshtime", "5")Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
plus belle vue du haut de son Pouf = )

