[..] Déplacer deux fenêtres en même temps

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pumilio
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 03 déc. 2012 16:59
Status : Hors ligne

[..] Déplacer deux fenêtres en même temps

#1

Message par pumilio »

Bonjour,

Est-il possible de déplacer la fenêtre d'un logiciel (notepad.exe par exemple) en même temps qu'une Gui ?

Je souhaiterais que lorsque je déplace ma Gui sur l'écran avec la souris cela fasse également bouger la fenêtre notepad.exe en parallèle (même mouvement, même nombre de pixel) ? Je n'ai pas trouvé de piste de départ :oops: .

Merci.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2125
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Déplacer deux fenêtres en même temps

#2

Message par TommyDDR »

Vous pouvez utiliser GUIRegisterMsg dans cet exemple j'ai utilisé le paramètre envoyé à WM_COMMAND pour récupérer la position x et y de la zone cliente de la fenêtre déplacée, cela ne correspond dont pas à la position de la fenêtre dans son ensemble, mais rien ne vous empêche de récupérer sa position avec WinGetPos.
► Afficher le textecode
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Déplacer deux fenêtres en même temps

#3

Message par jguinch »

La solution proposée par Tommy est pour moi la meilleure.
Juste une remarque, concernant la position de la fenêtre : lorsque Aero est activé, les coordonnées renvoyées par WinGetPos (ou autre) ne correspondent pas exactement à la taille et position de la fenêtre.
Utiliser _WinGetPosEx() à la place si besoin.
► Afficher le texteavec _WinGetPosEx
@Tommy : je n'ai pas compris les deux test suivants :? :
If($x > 60000) Then $x -= 0x10000
If($y > 60000) Then $y -= 0x10000
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2125
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Déplacer deux fenêtres en même temps

#4

Message par TommyDDR »

c'est quand la fenêtre est en position négative wParam renvoie 0xFFFF (65535) pour -1 par exemple donc j’enlève 0x10000 (65536) pour repasser en négatif.
Essaye en enlevant les lignes et passe la fenêtre en négatif sur les x, tu verras notepad disparaitre ^^.
Je dois t'avouer que le 60000 est purement arbitraire.

(Merci pour _WinGetPosEx() )
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
pumilio
Niveau 3
Niveau 3
Messages : 38
Enregistré le : lun. 03 déc. 2012 16:59
Status : Hors ligne

Re: [..] Déplacer deux fenêtres en même temps

#5

Message par pumilio »

Merci à vous deux,

J'ai pu parfaitement adapter le code de TommyDDR sur mon projet. je voulais également tester celui de jguinch. Il fonctionne mais je rencontre une difficulté : notepad doit impérativement être lancé en premier pour que ça fonctionne. Dans mon cas de figure il s'ouvre après (manuellement par exemple). J'ai tenté de trouver la solution mais je n'ai pas réussi. Comment faire ?

De plus je souhaiterais que notepad reste toujours devant la Gui. En utilisant WinSetOnTop c'est un peu trop radical. Dans ce cas notepad reste devant toutes les fenêtres qui peuvent s'afficher à l'écran. Est-il possible de gérer ce cas de figure ?

Merci.
Répondre