Trouver fenêtre dans une zone spécifique

Vous voulez de l'aide ? Postez ici :)
Post Reply
raise81
Posts: 9
Joined: 05 Sep 2018, 18:55

Trouver fenêtre dans une zone spécifique

Post 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:
raise81
Posts: 9
Joined: 05 Sep 2018, 18:55

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

Post 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.
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

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

Post 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();
raise81
Posts: 9
Joined: 05 Sep 2018, 18:55

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

Post 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 ?
francois
Posts: 456
Joined: 18 Oct 2010, 10:33
Location: France

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

Post 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();
Post Reply