Bonjour à tous,
Je débute sur AutoIt et je rencontre un petit souci avec un script qui gère une fenêtre simple.
Le problème : la fenêtre ne se met plus à jour après un certain point du script, comme si elle se figeait.
J'ai pourtant utilisé GUISetState() et même ajouté quelques Sleep(), mais rien n’y fait.
Est-ce que quelqu’un aurait une idée de ce qui peut bloquer l’interface ?
Peut-être une boucle mal faite ou une mauvaise gestion des événements ?
Voici le comportement recherché :
mettre à jour un label en continu
garder la fenêtre responsive
Et voici le comportement réel :
la fenêtre s’affiche mais devient figée
Si un expert a une piste, je suis preneur. Merci d'avance pour votre aide !
Script AutoIt bloqué : ma fenêtre ne se met plus à jour
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.
-
louiseravot
- Niveau 2

- Messages : 17
- Enregistré le : sam. 26 juil. 2025 17:12
- Status : Hors ligne
- Nine
- AutoIt MVPs (MVP)

- Messages : 145
- Enregistré le : ven. 17 avr. 2020 01:23
- Localisation : Montréal, Québec
- Status : Hors ligne
Re: Script AutoIt bloqué : ma fenêtre ne se met plus à jour
Sans code, ça va être difficile. On peut juste jouer à la devinette. Une erreur fréquente est d'avoir une seconde boucle appelée dans la boucle principale du GUI.
Re: Script AutoIt bloqué : ma fenêtre ne se met plus à jour
Salut !
Je suis d'accord avec Nince,sans code, c'est compliqué !
Voici un début de réponse
Le problème est classique quand on débute : ta fenêtre se fige parce que ton script ne traite pas les événements Windows pendant qu'il travaille.
La solution : ajoute une boucle de messages dans ton code, donc -> au lieu de faire ton traitement en continu, tu dois utiliser :
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
; Ton code de mise à jour du label ici
GUICtrlSetData($label, "Nouveau texte")
WEnd
Le truc : GUIGetMsg() permet à Windows de rafraîchir ta fenêtre et de gérer les clics/déplacements. Sans ça, ta GUI reste "bloquée".
Si tu as un traitement long, tu peux aussi :
Découper ton code en petites étapes
Utiliser AdlibRegister() pour exécuter une fonction périodiquement
Regarder du côté de GUIOnEventMode pour un mode événementiel
N'hésite pas à partager ton code si tu as encore du mal, ça sera plus facile de t'aider
Bon courage!!
Je suis d'accord avec Nince,sans code, c'est compliqué !
Voici un début de réponse
Le problème est classique quand on débute : ta fenêtre se fige parce que ton script ne traite pas les événements Windows pendant qu'il travaille.
La solution : ajoute une boucle de messages dans ton code, donc -> au lieu de faire ton traitement en continu, tu dois utiliser :
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
; Ton code de mise à jour du label ici
GUICtrlSetData($label, "Nouveau texte")
WEnd
Le truc : GUIGetMsg() permet à Windows de rafraîchir ta fenêtre et de gérer les clics/déplacements. Sans ça, ta GUI reste "bloquée".
Si tu as un traitement long, tu peux aussi :
Découper ton code en petites étapes
Utiliser AdlibRegister() pour exécuter une fonction périodiquement
Regarder du côté de GUIOnEventMode pour un mode événementiel
N'hésite pas à partager ton code si tu as encore du mal, ça sera plus facile de t'aider
Bon courage!!
Re: Script AutoIt bloqué : ma fenêtre ne se met plus à jour
Salut
Bien vu pour la boucle de messages, c'est effectivement le piège classique quand on débute avec les interfaces graphiques sur AutoIt et qu'on oublie de laisser Windows respirer.
Bon courage pour ton script !
Bien vu pour la boucle de messages, c'est effectivement le piège classique quand on débute avec les interfaces graphiques sur AutoIt et qu'on oublie de laisser Windows respirer.
Bon courage pour ton script !

