Détecter ouverture d'une fenetre

Postez ici si vous avez des difficultés a comprendre une commande, ou a créer une macro.
Répondre
Turmac
Messages : 13
Enregistré le : 10 avr. 2020, 19:20

Détecter ouverture d'une fenetre

Message par Turmac » 02 nov. 2023, 17:07

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

Avatar du membre
Onissius
Messages : 744
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Re: Détecter ouverture d'une fenetre

Message par Onissius » 03 nov. 2023, 07:28

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).
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

Turmac
Messages : 13
Enregistré le : 10 avr. 2020, 19:20

Re: Détecter ouverture d'une fenetre

Message par Turmac » 03 nov. 2023, 10:21

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

Avatar du membre
Onissius
Messages : 744
Enregistré le : 11 avr. 2014, 22:47
Localisation : Lyon (France)
Contact :

Re: Détecter ouverture d'une fenetre

Message par Onissius » 03 nov. 2023, 12:33

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
J'ai découvert SM en 99, rapidement Adam m'a promu admin.
Posez vos questions aussi clairement que possible, sans fautes qui piquent les yeux et relisez vous.
Vérifiez sur mon DISCORD si je suis en ligne.

Turmac
Messages : 13
Enregistré le : 10 avr. 2020, 19:20

Re: Détecter ouverture d'une fenetre

Message par Turmac » 03 nov. 2023, 18:01

Super merci ! Je vais essayer de réduire l'objet à trouver pour améliorer le temps de recherche.

plvh935
Messages : 166
Enregistré le : 10 sept. 2014, 22:33

Re: Détecter ouverture d'une fenetre

Message par plvh935 » 04 nov. 2023, 17:57

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é.

Répondre