Page 1 sur 1
[R] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 16:40
par jcaspar
B

onjour à tous !
Je souhaiterais qu'un message d'attente apparaisse avant l’exécution d'une fonction
puis lorsque l’exécution de la fonction est achevé un message apparaisse
indiquant que l’exécution est achevée ....je suppose qu'il faut capturer le retour de la fonction
si l’exécution c'est bien déroulée celle ci doit retournée une valeur spécifique ? Peut être auriez vous un exemple
de code afin que je puisse adapter le code à mes besoins ?
Je vous remercie de vos conseils

!
Jean-Marc
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 16:54
par DimVar
Bonjour,
Deux choix s'offrent à vous :
- Une message box (ou autre) pour dire de patienter. une autre pour dire "c'est fini"
- Une boite de progression. (progress bar)
Dans les deux cas, il vous etre familier avec les codes retour des fonctions. (C'est un peu la base de la programmation

)
Cdlt.
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 17:13
par mikell
Attention la msgbox est bloquante
Autre possibilité :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$gui = GUICreate("test", 220, 100, -1, 300)
GUISetBkColor(0x000000)
$label = GUICtrlCreateLabel("0", 30, 10, 50, 70)
GuiCtrlSetFont(-1, 48, 600, 0, "Arial")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xff0000)
$btn = GuiCtrlCreateButton("go", 140, 20, 40, 30)
GUISetState()
SplashTextOn ("", "En attente ...", 280, 55, -1, -1, 49)
While 1
$msg = GuiGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
If $msg = $btn Then _Go()
Wend
Func _Go()
SplashTextOn ("", "C'est parti !", 280, 55, -1, -1, 49)
Sleep(1000)
For $i = 0 to 5
SplashTextOn ("", "Exécution en cours " & $i, 280, 55, -1, -1, 49)
GuiCtrlSetData($label, $i)
Sleep(600)
Next
SplashTextOn ("", "Terminé !", 280, 55, -1, -1, 49)
Sleep(2000)
SplashOff()
EndFunc
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 18:05
par Sydneysyd
Le WinWait pourrait être une autre option non ?
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 18:29
par mikell
Tous les *Wait sont bloquants "Pauses execution of the script until ....etc"
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 20:13
par yohan8
SplashTextOn fait l'affaire mais j'utilise souvent un ToolTip dans un coin pour m'informer de l'avancé du script.
C'est plus discret et ça ne cache pas l'écran. Tout dépend à qui le message est destiné

Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 20:31
par jcaspar
M

erci de vos réponses ! J'ai eu une idée mais j'aimerais avoir vos avis ...
est ce que lorsque la valeur de retour est disponible l’exécution de la fonction est terminée ?
Code : Tout sélectionner
func test()
send("coucou")
return 1
EndFunc
if test()=1 Then
msgbox(64,"La fonction a fini son boulot",test(),5)
EndIf
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 21:15
par Tlem
mikell a écrit :Attention la msgbox est bloquante
Pas toujours ...
Idem pour les *Wait & Co, si mis dans un autre script/tread.
Code : Tout sélectionner
If @Compiled Then
; Si le script est compilé, AutoIt.exe n'est peut être pas disponible. Donc on utilise le script compilé lui même.
Run(@ScriptFullPath & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hello World!'', ''Hi!'')"')
Else
Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hello World!'', ''Hi!'')"')
EndIf
; Juste pour montrer que la boite de message n'à pas bloqué le script.
For $i = 1 To 1000 Step 30
Beep($i, 50)
Next
For $i = 1000 To 1 Step -30
Beep($i, 50)
Next
Re: [..] Message d'attente durant d'excution d'une fonction
Posté : lun. 30 sept. 2013 21:25
par mikell
Vachement capillotracté, ya 2 instances
Et super pratique à utiliser dans ce sujet (ou dans tout autre script d'ailleurs)

Re: [..] Message d'attente durant d'excution d'une fonction
Posté : mar. 01 oct. 2013 09:26
par DimVar
Oups, je parlais d'une msgbox avec timewait (il va de soit).
Vous pouvez désormais arrêter de tergiverser
