Page 2 sur 2
Re: [R] Fermer les fenetres
Posté : jeu. 21 janv. 2021 13:57
par Tlem
Bonjour.
Je ne sais pas quel type de programme vous avez écrit pour avoir autant de ligne de code, mais j'ai fortement l'impression qu'il n'est pas adapté au mode standard.
Si vous devez ré-écrire votre code, passez en mode événementiel, je pense que cela vous permettra de mieux gérer vos différentes fenêtres (a condition de rester logique).
Re: [R] Fermer les fenetres
Posté : ven. 22 janv. 2021 00:45
par TommyDDR
Si vous ne savez pas "dans quel while" mettre votre fermeture de fenêtre, c'est que vous ne comprenez pas comment fonctionne votre script. Il suffit de mettre la fermeture de votre fenêtre au moment dans le script où vous le souhaitez, c'est à vous de savoir à quel moment (action utilisateur ?) vous fermez la fenêtre et de trouver où se situe ce moment dans le code.
Re: [R] Fermer les fenetres
Posté : sam. 23 janv. 2021 09:50
par YuChan
Merci
TommyDDR.
Je connais mon code, j'ai beau placer mes fermetures de fenêtres et sa marche pas.
J'ai tout essayé.
Par contre on est obligé de faire comme sa :
Ou on peut faire autrement, car la je suis coincé
Merci
Re: [R] Fermer les fenetres
Posté : sam. 23 janv. 2021 13:03
par Tlem
Bonjour YuChan
Sans plus de code, il va être difficile de vous aider plus.
Exit est la commande qui permet de quitter le code et donc de fermer le processus.
Si chez vous cela ne fonctionne pas, c'est que la commande n'est pas exécutée.
Si elle n'est pas exécutée, c'est que la/les conditions ne sont pas remplies
Dans le code que vous nous donnez ci-dessus, il faut que
GUIGetMsg
retourne bien les événements de la fenêtre active.
Il faut que dans ces événements le handle de l'élément $bouton soit bien retourné (parce qu'il a été cliqué).
Il faut bien entendu que $bouton soit le handle d'un élément graphique de la fenêtre active.
Voici un code simple qui devrait je l'espère vous emmener à comprendre comment ça fonctionne :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$hGUI = GUICreate("Example") ; Fenêtre principale
$Btn_Coucou = GUICtrlCreateButton("A Que Coucou", 10, 370, 85, 25) ; A que coucou
$Btn_Quitter = GUICtrlCreateButton("Quitter", 220, 370, 85, 25) ; Bouton Quitter
$Btn_Ok = GUICtrlCreateButton("OK", 310, 370, 85, 25) ; Bouton Ok
GUISetState(@SW_SHOW, $hGUI) ; On affiche la fenêtre
While 1 ; Boucle d'attente infinie
Switch GUIGetMsg() ; Lecture des événements graphique
Case $GUI_EVENT_CLOSE, $Btn_Quitter ; On clique sur la croix ou le bouton Quitter
Exit ; On quitte le code
Case $Btn_Ok ; On clique sur le bouton
TrayTip("Vous avez cliqué OK", "Bouton OK", 5) ; Affichage du message
Case $Btn_Coucou ; On clique sur le bouton A Que Coucou
TrayTip("La fenêtre est masquée pour 5 secondes", "A Que Coucou", 3) ; Affichage du message
GUISetState(@SW_HIDE, $hGUI) ; On cache la fenêtre
Sleep(5000) ; On fait une pause de 5 secondes
GUISetState(@SW_SHOW, $hGUI) ; On affiche la fenêtre
TrayTip("La fenêtre est réaffichée", "A Que Coucou", 3) ; Affichage du message
EndSwitch
WEnd
Re: [R] Fermer les fenetres
Posté : sam. 23 janv. 2021 21:09
par mikell
Thierry, te fatigue pas
Ce qu'il lui faut évidemment c'est GuiGetMsg(1) pour gérer à la fois les events et les id des controles (et pas les handles...
), et plusieurs gui dans la même boucle While
C'est expliqué dans la page du fichier d'aide sur GuiGetMsg, notamment l'exemple n°2 qui est limpide
C'est expliqué dans le wiki, j'ai fourni le lien
Mais ce mec veut aller plus vite que la musique et courir avant de savoir marcher. On peut pas aider ce genre de personne
Re: [R] Fermer les fenetres
Posté : sam. 23 janv. 2021 21:44
par Tlem
Je pense surtout qu'il aurait mieux fait de passer en événementiel...
Re: [R] Fermer les fenetres
Posté : sam. 23 janv. 2021 21:55
par mikell
Je pense aussi, mais vu son niveau et son aversion à faire les efforts pour apprendre, pour l'instant il en est totalement incapable
Re: [R] Fermer les fenetres
Posté : dim. 24 janv. 2021 10:35
par YuChan
Voici mon code et je suis paumé avec les fermeture des fenetre
Si j'utilise
GUIDelete()
sa me ferme la fenetre mais je peux pas fermer les autres car il est en arrière plan
Code : Tout sélectionner
While 1
Switch GUIGetMsg()
Case $ButtonValider
MsgBox(64, "", "test OK")
Case $ButtonCancel
GUIDelete()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
Wend
Re: [R] Fermer les fenetres
Posté : dim. 24 janv. 2021 11:48
par Tlem
Normal. Vous faites un GuiDelete mais ne sortez pas de la boucle (comme vous le faites pour $Gui_Event_Close).
Ceci dénote bien votre manque de réflexion.
Au lieu de poser sans cesse des questions faites des recherches et LISEZ LA DOCUMENTATION, sans quoi,mon chat préféré va finir de s'occuper de vous.
Re: [R] Fermer les fenetres
Posté : lun. 25 janv. 2021 04:38
par YuChan
Merci Tlem, alors après plusieurs jours de réflexion et codage intensif... Je viens de me rendre conte que c'est ISN - Autoit Studio qui fait que mes fermetures de fenêtre bug !!!
Le code était bon, faut juste pas faire confiance a ISN - Autoit Studio
Voila désolé pour cela.
Sujet CLOS
Re: [R] Fermer les fenetres
Posté : lun. 25 janv. 2021 11:39
par mikell
YuChan a écrit : ↑lun. 25 janv. 2021 04:38faut juste pas faire confiance a ISN - Autoit Studio
Pas vraiment. Normal que tu aies eu des problèmes, ISN - Autoit Studio est un bon outil, mais ce n'est qu'un outil et comme tous les outils il faut savoir s'en servir. Si tu plantes un clou de travers ce n'est pas la faute du marteau
De toute façon il est illusoire de penser qu'un outil peut faire le boulot à ta place. Tant que tu ne comprendras pas le code que tu écris, ça ne marchera pas, ou alors tu auras l'impression que ça marche mais il y aura des bugs dont la correction te prendra infiniment plus de temps que si tu avais fait les choses correctement dès le début