Script AutoIt bloqué : ma fenêtre ne se met plus à jour

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
louiseravot
Niveau 2
Niveau 2
Messages : 17
Enregistré le : sam. 26 juil. 2025 17:12
Status : Hors ligne

Script AutoIt bloqué : ma fenêtre ne se met plus à jour  

#1

Message par louiseravot »

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 !
Avatar du membre
Nine
AutoIt MVPs (MVP)
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

#2

Message par Nine »

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.
TotoDev
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 25 déc. 2025 14:18
Status : Hors ligne

Re: Script AutoIt bloqué : ma fenêtre ne se met plus à jour

#3

Message par TotoDev »

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!!
Avatar du membre
Sabine
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 févr. 2026 11:06
Status : Hors ligne

Re: Script AutoIt bloqué : ma fenêtre ne se met plus à jour

#4

Message par Sabine »

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 !
Répondre