[R] Detection de fenêtre "polymorphe"
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
[R] Detection de fenêtre "polymorphe"
Bonjour.
Toujours avec mon robot, j'ai un dernier petit problème. Comment détecter une fenètre qui peut poper a n'importe quel moment, mais surtout qui n'a pas de nom, et dont le texte et les dimensions changent a chaque fois ! Cette fenêtre étant extremement rare, je n'ai pas reussi a provoquer son apparition pour essayer de chopper un paramètre pour la cibler via AWI.
Y a t'il, en gros, un moyen de dire "IF n'importe quoi d'autre s'ouvre, THAN ..." ?
J'ai pensé utiliser la fonction winList en AdlibRegister, mais ma fenetre n'a pas de titre...
La fenetre en question est, bien sur un message d'erreur.
J'ai reussi a gerer les erreur "routinières" du prototype, mais celle la...
Merci d'avance.
Toujours avec mon robot, j'ai un dernier petit problème. Comment détecter une fenètre qui peut poper a n'importe quel moment, mais surtout qui n'a pas de nom, et dont le texte et les dimensions changent a chaque fois ! Cette fenêtre étant extremement rare, je n'ai pas reussi a provoquer son apparition pour essayer de chopper un paramètre pour la cibler via AWI.
Y a t'il, en gros, un moyen de dire "IF n'importe quoi d'autre s'ouvre, THAN ..." ?
J'ai pensé utiliser la fonction winList en AdlibRegister, mais ma fenetre n'a pas de titre...
La fenetre en question est, bien sur un message d'erreur.
J'ai reussi a gerer les erreur "routinières" du prototype, mais celle la...
Merci d'avance.
Modifié en dernier par Pelagos le lun. 17 mai 2010 09:36, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Si cette fenêtre n'a aucun élément qui reste identique, il va être difficile de la repérer.
Le fait qu'elle n'ai pas de titre est une chose, mais cela peut être un point de repère comme un autre, par contre, il vous faudra un ou plusieurs autres éléments comme point de repère.
Regardez si un mot du texte, le style ou tout autre élément peut être un point de repère, sans cela vous n'aurez pas grand chose pour vous aider ...
Peut être (a vérifier), si cette fenêtre apparait aléatoirement, mais qu'elle a le focus, vous pouvez considérer que :
Toute fenêtre sans titre qui apparait en premier plan et qui correspond à tel ou tel point de repère comme le style par exemple sera considérée comme la fenêtre à traiter.
Mais attention, cela peut mener à bien des dysfonctionnement si plus d'une fenêtre correspond à ceci.
Le fait qu'elle n'ai pas de titre est une chose, mais cela peut être un point de repère comme un autre, par contre, il vous faudra un ou plusieurs autres éléments comme point de repère.
Regardez si un mot du texte, le style ou tout autre élément peut être un point de repère, sans cela vous n'aurez pas grand chose pour vous aider ...
Peut être (a vérifier), si cette fenêtre apparait aléatoirement, mais qu'elle a le focus, vous pouvez considérer que :
Toute fenêtre sans titre qui apparait en premier plan et qui correspond à tel ou tel point de repère comme le style par exemple sera considérée comme la fenêtre à traiter.
Mais attention, cela peut mener à bien des dysfonctionnement si plus d'une fenêtre correspond à ceci.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Malheureusement je peux pas le gérer comme ça. La procedure du prototype inclue de nombreuses apparitions de fenètres, je peux pas lui dire ça, d'autant plus que beaucoup n'ont pas de titre (comme c'est un prototype, le logiciel a été programmé par un étudiant qui ne c'est pas fait c.... a nommer les fenètres).
La fenetre est un message d'erreur sans titre. Sa taille depends de l'erreur en question, qui peut etre pas mal de truc. L'ordinateur est en allemand, et une fois sur deux le message d'erreur est en Allemand, donc pour repérer des similitudes de mot c'est pas evident... Pour une raison que je ne comprends pas, le texte des fenetres n'est de toute manière jamais reconnu par AWI. Peut etre un probleme de Labview...
Est ce que se serait pas possible de gerer comme ca : fonction WinGetHandle de toute les fenetres utiles, et inclure un truc du genre "Si une nouvelle fenetre pope, lit le handle. Si le handle colle pas avec la liste de handle, Then ..." ? Par contre je vois pas trop comment coder un truc comme ça.
La fenetre est un message d'erreur sans titre. Sa taille depends de l'erreur en question, qui peut etre pas mal de truc. L'ordinateur est en allemand, et une fois sur deux le message d'erreur est en Allemand, donc pour repérer des similitudes de mot c'est pas evident... Pour une raison que je ne comprends pas, le texte des fenetres n'est de toute manière jamais reconnu par AWI. Peut etre un probleme de Labview...
Est ce que se serait pas possible de gerer comme ca : fonction WinGetHandle de toute les fenetres utiles, et inclure un truc du genre "Si une nouvelle fenetre pope, lit le handle. Si le handle colle pas avec la liste de handle, Then ..." ? Par contre je vois pas trop comment coder un truc comme ça.
- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Bonjour Pelagos,
Si tu ne peux pas te baser sur le titre, le contenu du message d'erreur a-t-il un texte commun (ex : violation d'accès ou autre) ?
Si c'est le cas, tu peux peut être essayer ça :
Je vais essayer de faire des tests voir si Autoit l'accepte.
Amicalement.
BM
Si tu ne peux pas te baser sur le titre, le contenu du message d'erreur a-t-il un texte commun (ex : violation d'accès ou autre) ?
Si c'est le cas, tu peux peut être essayer ça :
Code : Tout sélectionner
WinWait("","Violation d'accès",250)
Amicalement.
BM
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Hum. J'avais essayer de faire un truc similaire avec le premier type d'erreur du logiciel. Celui la étant "fixe", il etait plus facile a résoudre. La detection de texte ne marchait pas, AWI ne detectait aucun texte (alors que bien sur, il existait.). Je pense que la gestion de fenetre de Labview est le probleme, toutefois, la fenetre avait toujours la meme taille, donc j'ai utilisé ce paramètre.
Dans le second cas le texte varie, en fonction du type d'erreur, et donc la taille de la fenetre. Sur il y a toujours le mot "erreur" dans la fenêtre (encore que suivant les changements de langue, pas toujours, mais très souvent diront nous) , mais je ne pense pas que ça va marcher.
Enfin, ca vaut le coup d'essayer, je teste et je te dis.
Merci du coup de main en tout cas.
Dans le second cas le texte varie, en fonction du type d'erreur, et donc la taille de la fenetre. Sur il y a toujours le mot "erreur" dans la fenêtre (encore que suivant les changements de langue, pas toujours, mais très souvent diront nous) , mais je ne pense pas que ça va marcher.
Enfin, ca vaut le coup d'essayer, je teste et je te dis.
Merci du coup de main en tout cas.
- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Voici un bout de code qui te permettrait de faire un tableau avec les applis qui tournent avec le nombre d'instances :
Si ton nombre d'appli est défini, tu fait tourner ce script quand tu n'as pas ta fenêtre pour le stocker dans un tableau en dur et après tu compares si ton total est différent entre ton tableau fixe et le réel.
C'est un peu tiré par les cheveux mais je ne trouve que ça comme solution pour l'instant pour ton cas
Je continue à chercher.
Amicalement.
BM
► Afficher le texte
C'est un peu tiré par les cheveux mais je ne trouve que ça comme solution pour l'instant pour ton cas
Je continue à chercher.
Amicalement.
BM
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
J'avais envisagé une solution dans le genre, mais j'ai franchement pas le nivear pour programmé un truc du genre. Ben je teste et je te dis.
La detection de mot ne marche pas, c'est officiel.
Merci encore.
La detection de mot ne marche pas, c'est officiel.
Merci encore.
- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Fais moi un hijackthis (http://www.clubic.com/telecharger-fiche ... kthis.html) de ta machine sur laquelle tourne ton robot et envoie le moi.
J'essayerai de voir si j'arrive à te faire quelque chose.
Amicalement.
BM
J'essayerai de voir si j'arrive à te faire quelque chose.
Amicalement.
BM
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Désolé, je peux pas faire ça. Je n'ai pas les droits requis sur l'ordi du prototype. L'installation de tout nouveau programme est reglementée au niveau du laboratoire.
Désolé.
Désolé.
- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Là, ça devient dur 
Là, j'ai plus d'idée, désolé
Amicalement.
BM
Là, j'ai plus d'idée, désolé
Amicalement.
BM
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Aux vues du peux de possibilités de points de repères, je propose une dernière solution. 
Le but est de surveiller les fenêtres popup et de rechercher si le handle parent
Si le handle parent est l'application en question, alors c'est sans doute la fenêtre du message d'erreur.
Le but est de surveiller les fenêtres popup et de rechercher si le handle parent
Si le handle parent est l'application en question, alors c'est sans doute la fenêtre du message d'erreur.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Pour Scorp84, merci, c'est pas grave, tu m'as deja bien aidé. L'idée de Tlem est bonne, je vais essayer de combiner ca avec ton script, ca devrai passer. Je teste et je vous tiens au jus.
- scorp84
- Niveau 7

- Messages : 415
- Enregistré le : mar. 04 nov. 2008 21:51
- Localisation : Avignon, France
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Bonjour,
Certains de mes scripts envoient après exécution un rapport par mail.
Dans ce rapport, je fais un tableau des fenêtres ouvertes et pour chacune j'ai l'application parente.
Vu que ta fenêtre est sans nom, peut être peux tu récupérer son handle avec le nom du programme.
Voici le code :
Le bout de code est sûrement perfectible mais j'espère qu'il pourra t'aider.
Amicalement.
BM
Certains de mes scripts envoient après exécution un rapport par mail.
Dans ce rapport, je fais un tableau des fenêtres ouvertes et pour chacune j'ai l'application parente.
Vu que ta fenêtre est sans nom, peut être peux tu récupérer son handle avec le nom du programme.
Voici le code :
► Afficher le texte
Amicalement.
BM
Re: [...] Detection de fenêtre "polymorphe"
Je n'est pas bien compris ce qu'est AWI, mais certaine fenêtre son identifiable grâce a la class (voir AutoIt window info)
WinGetClassList pourrai peu être aider.
WinGetClassList pourrai peu être aider.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
GMib a écrit :Je n'est pas bien compris ce qu'est AWI
GMib a écrit :voir AutoIt Window Info
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [...] Detection de fenêtre "polymorphe"
lol, ben voila, la j'ai compris 
- Pelagos
- Niveau 2

- Messages : 22
- Enregistré le : lun. 22 mars 2010 09:29
- Localisation : Basel, Suisse
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
Bien, j'ai résolu le problème avec un "select...case" basé sur une gamme de taille de fenetre et le code de Scorp84. Finalement ça marche assez.
Bref, c'est long et lourd, mais ca marche pas mal. Donc bon.
Merci a tous.
Bref, c'est long et lourd, mais ca marche pas mal. Donc bon.
Merci a tous.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [...] Detection de fenêtre "polymorphe"
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".

