[RÉSOLU] Recuperer les coordonnées d'une fenetre

Vous voulez de l'aide ? Postez ici :)
Post Reply
Astalol
Posts: 43
Joined: 13 Dec 2011, 01:12

[RÉSOLU] Recuperer les coordonnées d'une fenetre

Post by Astalol »

Est-ce possible ?

Je sais qu'on peut deplacer une fenetre en indiquant les coordonnées des pixels qui forme le coin supérieur gauche.

Mais est-il possible de recuperer les coordonnées d'une fenetre deja positionnée ?

Merci de votre aide.
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Recuperer les coordonnées d'une fenetre

Post by Jmgr »

Tout est possible :)

Avec un bout de code : (triangle rouge)

Code: Select all

var windows = Window.find({
    title: "titre de fenêtre*",
    titleMode: Window.Wildcard
});

var position = new Point(0, 0);
if(windows && windows.length > 0)
{
        var windowRect = windows[0].rect();
        position = new Point(windowRect.x, windowRect.y);
}
position contient la position de la fenêtre.
Note : il y a un bug dans la version Linux de Window() qui empêche la récupération des coordonnées des fenêtres. Ça sera corrigé dans la version 3.2.0. Sous Windows ça marche.
"My software never has bugs. It just develops random features."
Astalol
Posts: 43
Joined: 13 Dec 2011, 01:12

Re: Recuperer les coordonnées d'une fenetre

Post by Astalol »

ma reponse est tardive mais merci bcp !

j'ai cru croiser aussi par hasard un autre moyen de recuperer les coordonnées d'une fenetre.

Notamment via l'action "condition de fenetre" dans l'onglet "avancé" on peut stocker dans des variables les coordonées X et Y de la dite fenetre. J'ai pas testé mais j'imagine que c'est ca ?

En parlant de condition de fenetre j'ai un probleme avec mon code :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="3.0.1" scriptVersion="1.0.0" os="Windows"/>
    <actions>
        <action name="ActionDetachedCommand" version="1.0.0"/>
        <action name="ActionStop" version="1.0.0"/>
        <action name="ActionGoto" version="1.0.0"/>
        <action name="ActionWindow" version="1.0.0"/>
        <action name="ActionWindowCondition" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionWindowCondition" comment="paint ouvert / ferme ">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="width">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0">Sans titre - Paint</subParameter>
            </parameter>
            <parameter name="condition">
                <subParameter name="value" code="0">exists</subParameter>
            </parameter>
            <parameter name="processId">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="height">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="ifTrue">
                <subParameter name="line" code="0">paintouvert</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="ifFalse">
                <subParameter name="line" code="0">paintferme</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="yCoordinate">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="xCoordinate">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
        </action>
        <action name="ActionWindow" label="paintouvert" comment="move à 0:0">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <exception id="33" action="0" line=""/>
            <parameter name="title">
                <subParameter name="value" code="0">Sans titre - Paint</subParameter>
            </parameter>
            <parameter name="resizeHeight">
                <subParameter name="value" code="0">0</subParameter>
            </parameter>
            <parameter name="action">
                <subParameter name="value" code="0">move</subParameter>
            </parameter>
            <parameter name="movePosition">
                <subParameter name="value" code="0">0:0</subParameter>
            </parameter>
            <parameter name="resizeWidth">
                <subParameter name="value" code="0">0</subParameter>
            </parameter>
        </action>
        <action name="ActionStop">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
        </action>
        <action name="ActionGoto" label="paintferme" comment="=>ouvrir">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <parameter name="line">
                <subParameter name="value" code="0">ouvrir</subParameter>
            </parameter>
        </action>
        <action name="ActionDetachedCommand" label="ouvrir" comment="ouverture de paint">
            <exception id="0" action="0" line=""/>
            <exception id="1" action="0" line=""/>
            <exception id="2" action="1" line=""/>
            <exception id="32" action="0" line=""/>
            <parameter name="processId">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="parameters">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="command">
                <subParameter name="value" code="0">C:/Windows/System32/mspaint.exe</subParameter>
            </parameter>
            <parameter name="workingDirectory">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
        </action>
    </script>
</scriptfile>
L'execution reste bloquée sur "condition de fenetre" comme si le cas "false" n'etait pas reconnu.

J'ajoute que ce code n'est qu'un exemple, j'ai eu le probleme sur un autre code qui me faisait pareil. J'ai essayé d'intervertir exist ou doesn't exist, ca ne change rien, idem pour le timeout.

S'agit-il d'un bug ou de moi qui fait mal quelque chose au niveau des conditions ?
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Recuperer les coordonnées d'une fenetre

Post by Jmgr »

j'ai cru croiser aussi par hasard un autre moyen de recuperer les coordonnées d'une fenetre.

Notamment via l'action "condition de fenetre" dans l'onglet "avancé" on peut stocker dans des variables les coordonées X et Y de la dite fenetre. J'ai pas testé mais j'imagine que c'est ca ?
Tout à fait, j'avais oublié cette possibilité :)
En parlant de condition de fenetre j'ai un probleme avec mon code :

Quand je l'execute en entier tout va bien.

Mais quand je l'execute à partir de la ligne 2 (càd quand paint est fermé) il reste bloqué sur la condition de fenetre comme si le cas "false" n'etait pas reconnu.
C'est bien un bug... Corrigé dans la prochaine version. Merci :)

Sinon, si ton script ne détecte pas Paint d'ouvert alors il en ouvre un autre en boucle ? C'est un peu risqué.
Je te conseille plutôt de choisir "Attendre" dans "Si faux" dans ton action de condition de fenêtre, comme ça l'action va attendre que la fenêtre soit ouverte avant de continuer.
"My software never has bugs. It just develops random features."
Astalol
Posts: 43
Joined: 13 Dec 2011, 01:12

Re: Recuperer les coordonnées d'une fenetre

Post by Astalol »

Sinon, si ton script ne détecte pas Paint d'ouvert alors il en ouvre un autre en boucle ? C'est un peu risqué.
Je te conseille plutôt de choisir "Attendre" dans "Si faux" dans ton action de condition de fenêtre, comme ça l'action va attendre que la fenêtre soit ouverte avant de continuer.
oui le code etait foireux c'etait juste pour l'exemple, d'ailleurs jai fait un EDIT le temps que tu ecrives cette réponse :p

Sinon pour la version 3.2 tu as une idée de la date de release ? Franchement meme incomplete juste pour ce bug fixe je dirai pas non, si tu veux me faire une version beta avec juste ca de corriger je la prends sans soucis.

Merci de ton aide en tout cas; Courage.
User avatar
Jmgr
Admin
Posts: 1651
Joined: 07 Dec 2005, 15:45
Contact:

Re: Recuperer les coordonnées d'une fenetre

Post by Jmgr »

Bin normalement dans maximum 30 min elle est sur mon site :p
"My software never has bugs. It just develops random features."
Astalol
Posts: 43
Joined: 13 Dec 2011, 01:12

Re: Recuperer les coordonnées d'une fenetre

Post by Astalol »

génial !
Post Reply