Page 1 sur 1
[..] Contrôle des script depuis un "tableau de bord GUI"
Posté : mar. 23 déc. 2008 15:22
par mafooley
Bonjour à tous,
J'ai créé un petit script qui se compose de deux fichiers au3. Un contient la définition de ma GUI, l'autre les actions à réaliser (c'est important que ça reste en deux fichiers).
Le Script est censé écrire un texte donné (a entrer dans la case input) dans un fichier Bloc-notes standard qu'il faut au préalable créer et ouvrir.
Il écrit le texte, va à la ligne toutes les 1,5 secondes et ainsi de suite. Jusque là, pas de problème.
Premier fichier, la définition de ma GUI:
► Afficher le texte
Code : Tout sélectionner
; == GUI generated with Koda ==
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;définition de la GUI
#Region ### START Koda GUI section ### Form=D:\Etude autoit\Form2.kxf
Opt("GUIOnEventMode", 1) ; Passe en mode événement
$Form2 = GUICreate("Test", 420, 271, 257, 241)
$txt = GUICtrlCreateInput("", 88, 32, 241, 21)
$Button1 = GUICtrlCreateButton("GO", 56, 200, 113, 25, 0)
GUICtrlSetOnEvent($Button1, "onyva") ;lancement de la fonction "onyva" quant on clic sur GO
$Button2 = GUICtrlCreateButton("Stop", 240, 200, 121, 25, 0)
GUICtrlSetOnEvent($Button2, "quitter") ;Arrêt du script quant on clic sur STOP via la fonction "quitter"
$Group1 = GUICtrlCreateGroup("Nombre de lignes", 88, 80, 241, 89)
$Label1 = GUICtrlCreateLabel("0", 136, 112, 23, 41, $SS_CENTER)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(1000) ; Boucle de d'attente
WEnd
Deuxième fichier, mes actions à réaliser:
► Afficher le texte
Code : Tout sélectionner
;définition de variable diverses
Global $texte
Global $nbrligne = 0
;déclarations Diverses.
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIessai.au3>
Func onyva()
$texte = GUICtrlRead($txt)
WinActivate("essai.txt - Bloc-notes")
While 1
Send($texte)
send("{ENTER}")
$nbrligne = $nbrligne + 1
sleep(1500)
WEnd
EndFunc ;onyva()
Func quitter()
Exit
EndFunc ;quitter()
Mes soucis sont les suivants:
Une fois cliqué sur GO, le script se met en route mais impossible de l'arrêter via l'autre bouton de commande.
Ensuite, j'ai créé également un compteur de lignes dont j'aimerai afficher le résultat en temps réel dans ma GUI, mais là, je ne sais pas du tout comment faire.
Merci d'avance pour votre aide
Maf
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : mar. 23 déc. 2008 16:03
par Tlem
La coloration syntaxique du code est réservée aux forums :
- - Exemples de script
- Fonctions et UDF
- Tutoriels
Merci.
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : mar. 23 déc. 2008 16:14
par mafooley
Tlem a écrit :La coloration syntaxique du code est réservée aux forums :
- - Exemples de script
- Fonctions et UDF
- Tutoriels
Merci.
Oups, désolé, je n'avais pas fais gaffe à ça, mais c'est dommage car c'était quand-même plus lisible en couleurs...
Maf
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : mar. 23 déc. 2008 17:09
par Tlem
Ben je sais bien, mais un simple copier/coller dans Scite vous donnera la même chose.
Comme en règle générale c'est ce qu'il faut faire pour tester le code, je préfère alléger la base de donnée et laisser les utilisateurs faire cette simple manipulation.
Pour info, il existe un addon pour Firefox qui gère ceci très simplement.
http://www.autoitscript.com/forum/index ... opic=42990
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : ven. 26 déc. 2008 00:30
par mafooley
Pas de solution à mon problème ?
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : ven. 26 déc. 2008 01:09
par Tlem
Temps que le script boucle dans le While de la fonction onyva(), l'évènement ne peut se produire.
Vous devriez plutôt inclure le fichier de commande dans le fichier GUI, et gérer les commande depuis là.
Rajoutez dans la boucle While de la partie GUI un contrôle de la fonction onyva() et temps qu'on est pas sortit du script, on retourne à la fonction.
Pour la deuxième question, rajoutez ceci : GUICtrlSetData($Label1, $nbrligne)
après la ligne $nbrligne = $nbrligne + 1.
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : ven. 26 déc. 2008 20:28
par mafooley
Ok, merci pour le GUICtrlSetData
Concernant l'utilisation de la commande Stop et cours de boucle, n'est-il pas possible ou n'existe t-il pas de commande du genre HotKeySet ?
De n'importe où dans le programme on pourrait interagir.
Sinon, j'avoue que je n'ai pas trop compris le truc d'inclure la commande de onyva() dans ma boucle While de la GUI
Maf
Re: [..] Contrôle des script depuis un "tableau de bord GUI"
Posté : ven. 26 déc. 2008 20:48
par Tlem
mafooley a écrit :De n'importe où dans le programme on pourrait interagir.
C'est déjà le cas, mais si vous enfermez le code dans une boucle d'une fonction, le script ne peut aller plus loin.
Ou alors utilisez peut-être
AdlibEnable pour exécuter une action toutes les xx ms et faire une action en conséquence, mais ce n'est pas trop logique en la circonstance.