[R] Fermer les fenetres

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fermer les fenetres

#21

Message 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).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Fermer les fenetres

#22

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: [R] Fermer les fenetres

#23

Message 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 :

Code : Tout sélectionner

while 1

	switch GUIGetMsg

		case $bouton
		Exit
			EndSwitch  
	WEnd 			
Ou on peut faire autrement, car la je suis coincé

Merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fermer les fenetres

#24

Message 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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Fermer les fenetres

#25

Message 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... :mrgreen: ), 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 :roll:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fermer les fenetres

#26

Message par Tlem »

Je pense surtout qu'il aurait mieux fait de passer en événementiel...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Fermer les fenetres

#27

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: [R] Fermer les fenetres

#28

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Fermer les fenetres

#29

Message 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. :twisted:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: [R] Fermer les fenetres

#30

Message 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
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Fermer les fenetres

#31

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre