Page 1 sur 1

Détecter ouverture d'une fenetre

Posté : 02 nov. 2023, 17:07
par Turmac
Bonjour à tous

Sujet que je ne connais pas du tout, tout ce qui touche au Handle, et à Trouve image.
J'aimerai savoir si, gâce à ces deux fonctionnalités, il est possible de détecter si une fenetre s'ouvre, afin de déclencher la suite de la macro, au lieu d'une simple tempo qui ne prendrait pas en compte un eventuel ralentissement...
Merci pour vos lumières

Re: Détecter ouverture d'une fenetre

Posté : 03 nov. 2023, 07:28
par Onissius
Le Handle c'est un numéro défini par windows, qui change pour chaque fenêtre afin que tu puisse prendre une fenêtre précise. Donc non tu ne va pas pouvoir savoir si une fenêtre est ouvert, vu que tant qu'elle n'est pas ouverte, elle n'a pas de numéro de Handle.
Par contre, avec un trouve image, oui.
Pense juste à définir une taille d'image à trouvé la plus petite possible, voir même utilise pixel color (couleur d'un pixel à chercher).

Re: Détecter ouverture d'une fenetre

Posté : 03 nov. 2023, 10:21
par Turmac
Merci Onissius
Quand tu dis image la plus petite possible, ça influe sur quoi, la rapidité de recherche ? la précision ?
Et, lorsque l'on défini le "trouve image", il y a les fleches rouges et les fleches oranges.
J'ai cru comprendre que les fleches oranges permettent de définir le secteur recherché, mais pourquoi les fleches rouges ? est-ce que leur espacement va avoir un impact sur la recherche ? (et encore une fois sur la rapidité)
Merci encore

Re: Détecter ouverture d'une fenetre

Posté : 03 nov. 2023, 12:33
par Onissius
Le Trouve image recherche une image de 'X' pixel, où CHAQUE pixel doit être identique.
Donc tu imagine que vérifier une image de 100 x 100 (soit 10'000 pixel) c'est plus longue à trouver qu'une image de 10 x 10.
Si tu recherche si une fenêtre est ouverte, ne recherche pas toute la fenêtre, mais un petit détail de cette fenêtre.

Une vidéo sur le trouve image : https://www.youtube.com/watch?v=EBgVhKRqYVk

Re: Détecter ouverture d'une fenetre

Posté : 03 nov. 2023, 18:01
par Turmac
Super merci ! Je vais essayer de réduire l'objet à trouver pour améliorer le temps de recherche.

Re: Détecter ouverture d'une fenetre

Posté : 04 nov. 2023, 17:57
par plvh935
Bonsoir,
Je propose une solution pour détecter la présence d'une fenêtre, via la recherche d'objet (plus précis que le Trouve Image).
Voici le code :
Variable <Var1>;0;Numerique;
Label <Label1>
Objet 328738;0;excel.exe;XLMAIN;Classeur1 - Excel;160;27;2;1;<Var1>;;168;
Examine <Var1>;=;1;
Message Message;Objet trouvé;
Goto <Label1>
Quitter

Explications :
Créer une variable numérique Var1. Valeur à zéro.
Dans une boucle Label-Goto tu testes la présence d'un objet (ici Classeur1 - Excel) et tu notes sa valeur dans Var1.
Tu testes la valeur de Var1.
- Si Var1 est à 1 cela veut dire que 1 objet correspondant a été trouvé. Affichage du message "Objet trouvé" et fin de la macro.
- Si Var1 n'est pas à 1, l'objet n'est pas trouvé tu reviens au Label. Et tu boucles infiniment.
Essayes ça. Il te faut juste changer d'objet (moi Excel est le premier qui m'est venu à l'esprit) et modifier les actions Si trouvé/Si pas trouvé.