Page 1 of 1

Trouver fenêtre dans une zone spécifique

Posted: 17 Sep 2018, 17:00
by raise81
Bonjour à tous ,

Je cherche à utiliser la fonction trouver fenêtre mais dans une zone bien définie cela est-il possible? je n'ai rien trouvé là-dessus merci pour votre aide :wink:

Re: Trouver fenêtre dans une zone spécifique

Posted: 17 Sep 2018, 17:03
by raise81
Désolé j'ai oublié de préciser que j'aimerais faire cette recherche de fenêtre dans une zone spécifique par class et non pas par le titre de la fenêtre merci beaucoup.

Re: Trouver fenêtre dans une zone spécifique

Posted: 17 Sep 2018, 18:46
by francois
Bonjour,
Voir https://wiki.actiona.tools/doku.php?id= ... indow#find

C'est assez riche en paramètres.

Je n'ai pas eu à utiliser "ClassName"
Par contre, j'ai du chercher des fenêtres pour lesquelles je n'avais qu'une partie du nom,

exemple , créer une action code où l'on cherche une page dont le nom contient "azerty" :

Code: Select all

nom_page_a_trouver=  "*azerty*"; 
var windows = Window.find({
title:nom_page_a_trouver,
titleMode: Window.Wildcard
});	

if (windows.length==0){
   Console.print(" Page pas trouvée :  " + nom_page_a_trouver );
   Execution.stop();
};

my_fenetre=windows[0];
//Console.print(my_fenetre)
my_fenetre.setForeground();

Re: Trouver fenêtre dans une zone spécifique

Posted: 17 Sep 2018, 18:54
by raise81
Merci pour votre réponse François, effectivement il y a pas mal de possibilités qui devrait m'aider, je vais essayer ça en rentrant.
Par contre il n'est pas possible de faire la recherche de la fenêtre dans une zone bien spécifique de mon écran ?

Re: Trouver fenêtre dans une zone spécifique

Posted: 18 Sep 2018, 17:41
by francois
Bonjour,

A l'adresse indiquée hier, il y a un paramètre intéressant pour ce que vous voulez faire : rect().

on ne garde que la fenetre ayant un rect() correspondant à ce qu'on attend.
(Voire les fenetres si besoin)

Exemple : ici je veux mettre en 1er plan la fenetre
avec

Code: Select all

x_gauche_window = 655;
y_gauche_window =160
largeur_window =631;
hauteur_window = 289;
... a condition que le nom de cette fenetre contienne Notepad :

Code: Select all

nom_page_a_trouver=  "*Notepad*"; 
var windows = Window.find({
title:nom_page_a_trouver,
titleMode: Window.Wildcard
});	

if (windows.length==0){
   Console.print(" Page pas trouvée :  " + nom_page_a_trouver );
   Execution.stop();
};


// a adapter suivant la fenetre
x_gauche_window = 655;
y_gauche_window =160
largeur_window =631;
hauteur_window = 289;
// FIN a adapter suivant la fenetre
trouve = 0;

for(i=0;i<windows.length;i=i+1){
 fenetre=windows[i];
Console.print(fenetre.rect()); // permet de voir x, y ,larg et hauteur de la fenetre "trouvée"

if ( fenetre.rect().x ==x_gauche_window &&  fenetre.rect().y == y_gauche_window   && fenetre.rect().width == largeur_window && fenetre.rect().height == hauteur_window ){
    trouve =1;
	Console.print(" Page trouvée  dans zone attendue" );
	break; // si trouvé, on sort de la boucle 
   }   // fin if

}  // fin for

if (trouve ==0 ) {
        Console.print(" Page NON  trouvée  dans zone attendue" ); 
       Execution.stop()
} // fin if
fenetre.setForeground();