Page 1 of 1
[RÉSOLU] Recuperer les coordonnées d'une fenetre
Posted: 04 Jan 2012, 10:11
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.
Re: Recuperer les coordonnées d'une fenetre
Posted: 04 Jan 2012, 12:47
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.
Re: Recuperer les coordonnées d'une fenetre
Posted: 06 Jan 2012, 21:47
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 ?
Re: Recuperer les coordonnées d'une fenetre
Posted: 06 Jan 2012, 22:05
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.
Re: Recuperer les coordonnées d'une fenetre
Posted: 06 Jan 2012, 22:14
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.
Re: Recuperer les coordonnées d'une fenetre
Posted: 06 Jan 2012, 22:17
by Jmgr
Bin normalement dans maximum 30 min elle est sur mon site :p
Re: Recuperer les coordonnées d'une fenetre
Posted: 06 Jan 2012, 22:18
by Astalol
génial !