Page 2 sur 2

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : mer. 18 juil. 2012 13:58
par Anthony
J'ai l'impression de m'y prendre comme un pied malgrès des recherches infructueuses sur #forceref et dans les exemples d'AutoIt, çà veut pas :idea:
► Afficher le texte

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : mer. 18 juil. 2012 20:06
par mikell
Te prends pas la tête avec #forceref, ton script n'en a pas besoin
http://www.autoitscript.com/forum/topic ... ntry673445

Par contre si tu dois jongler avec 2 guis tu pourrais t'intéresser à $msg = GUIGetMsg(1) :
$msg[0] retourne l'event ou le control ID, $msg[1] retourne le handle de la gui concernée par l'event
ou carrément passer en eventmode avec GUISetOnEvent

Je comprends pas bien l'histoire de focus dans ton cahier des charges

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : mer. 18 juil. 2012 23:57
par Anthony
mikell a écrit :Te prends pas la tête avec #forceref, ton script n'en a pas besoin
http://www.autoitscript.com/forum/topic ... ntry673445
OK
mikell a écrit :Par contre si tu dois jongler avec 2 guis tu pourrais t'intéresser à $msg = GUIGetMsg(1) :
$msg[0] retourne l'event ou le control ID, $msg[1] retourne le handle de la gui concernée par l'event
ou carrément passer en eventmode avec GUISetOnEvent
Ce que tu m'éxplique c'est pour récupérer les messages et évènements de "Child" si j'ai bien compris ? :?
mikell a écrit :Je comprends pas bien l'histoire de focus dans ton cahier des charges
- La fenêtre "Child" bindée dans "Parent" fais perdre le focus quand celle-ci est sélèctionnée
Ce que je veut dire c'est que si on se sert de "Child" la fenêtre active n'est plus "Parent" c'est un peu une fusion de "Child" et "Parent" qui donnerai une seule fenêtre active

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 00:27
par Anthony
Je me demande si $ChildSize = WinGetPos($ChildHandle) me retourne la véritable position et taille de la fenêtre "Child" car j'ai un doute :?

Reste plus qu'à faire ou à corriger:
- La fenêtre "Child" bindée dans "Parent" fais perdre le focus quand celle-ci est sélèctionnée (fusion de "Child" et "Parent")
- Si la position et, ou la taille de la fenête "Child" change que "Parent" se redimentionne automatiquement
- Cacher le (Caption Resize) de "Child"
- Récupérer les fonctions de la fenêtre "Child" (Minimise,Maximise Restaurer,Fermer, etc) et appliquer à "Parent" celle disponibles
- Cacher le processus de "Child" dans le "Gestionnaire des tâches windows, normal on voit "Parent" à la place (2 processus çà fait pas propre)


Déjà fait:
- Binder une fenêtre windows "Child" dans AutoIt "Parent"
- Redimentionner, maximiser, restaurer la fenêtre "Child" dans AutoIt "Parent" en temps réél
- Récupération du nom de la fenête "Child" et renomage du nom de la fenêtre de "Parent"
- Application de l'icone de "Child" sur "Parent"
- Positionnement et Redimentionnement automatique de "Parent" par rapport à "Child" au lancement
- Limitation de la taille minimum et maximum de la fenêtre "Parent"
- Supprimer la limitation de la taille maximum quand on "Maximise" la fenête "Parent"
- Si le nom de la fenêtre "Child" change, la renvoyer dans "Parent" en temps réel


Code:
► Afficher le texte

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 15:30
par Anthony
Oula :shock:

Quelqu'un à-t'il déjà eu ce problème à la compilation car c'est ce qu'il vient de m'arriver en compilant WinControl.exe
çà me l'à fait qu'une fois, une :idea:
Image

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 15:40
par mikell
Anthony a écrit : - La fenêtre "Child" bindée dans "Parent" fais perdre le focus quand celle-ci est sélèctionnée
Ce que je veut dire c'est que si on se sert de "Child" la fenêtre active n'est plus "Parent"
Ben oui quoi :shock:
Tu peux pas avoir 2 fenêtres actives en même temps, or là tu travailles avec 2 fenêtres imbriquées mais qui restent quand même distinctes
Idem pour les processus, tu verras toujours les 2 dans le gestionnaire puisque tu as 2 exe distincts

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 15:44
par Anthony
Ok et en ce qui concerne mon alerte :lol:

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 19:21
par mikell
... et en ce qui concerne ton alerte, ou tu te dis que c'est un faux positif, ou tu formates :P

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 19:45
par Anthony
Je n'ai eu qu'un fois cette alerte je suppose un conflit interne entre le compilateur autoit et mon anti virus 8)
Voilà mon nouveau code, mais on peut voir qu'après l'action de Sleep(1500) il y à un problème de décalage.
Pour moi la cause est: WinGetPos
Comment le résoudre car j'ai l'impression qu'il ne prend que les coordonnées X et Y correctement car la largeur et que la hauteur sont fausses car décalé
► Afficher le texte

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : jeu. 19 juil. 2012 20:43
par Anthony
Position et taille résolu.
C'est dû à GUICreate j'ai pas vraiment compris pourquoi mais résolu avec WinMove
Si quelqu'un pouvais m'éxpliquer pourquoi ? :?

Code:
► Afficher le texte

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : ven. 20 juil. 2012 03:02
par Anthony
Modifié par GUISetOnEvent c'est vraiment génial par contre si je pouvais faire sortir du "While" GetChildTitle() et ChildSize() mais sans succés :cry:
Pour test de redimentionement ici c'est la calculatrice qui est utilisée pour les tests il sufit de jongler entre "Standard" et" scientifique"
Bon, après bien 16 heures devant le PC je vais dormir :| sinon j'y passe la nuit...
Bind Child Window To Parent.rar
Bind Child Window To Parent.rar
(1.83 Kio) Téléchargé 219 fois

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : ven. 20 juil. 2012 14:49
par Anthony
Je viens de découvrir un bug ou peut-être un oubli dans AutoIt, y à t'il un remède :?:
Si on redimentionne une fenêtre jusqu'en haut de l'écran aucun @GUI_CtrlId n'est retourné, ce qui cause un problème avec les GUI
Pour retourner le contrôle ID j'utilise ce code

Code : Tout sélectionner

MsgBox(0, "Event", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
La partie en gris est la partie oublié :?

Image

Re: [..] Binder, contrôler fenêtre Non AutoIt Child dans Aut

Posté : ven. 20 juil. 2012 23:45
par Anthony
Bon voilà mon dernier code avec barre de status et de (progression),
Code Source: http://ul.to/irjdzb0z en espérant un peu d'aide :oops:
Merci d'avance