[R] Lire l'état d'un TrayTip

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

[R] Lire l'état d'un TrayTip

#1

Message par keltharak »

Bonjour,

Est-il possible de lire l'état d'un TrayTip ? Je veux dire par la, est-on capable de checker le Traytip pour savoir s'il est toujours visible pour l'utilisateur ? (sachant qu'il peut se fermer soit par le Timeout, soit par l'action de l'utilisateur...)

Merci d'avance
Modifié en dernier par keltharak le jeu. 07 avr. 2011 10:15, modifié 1 fois.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#2

Message par ZDS »

Bonjour,

Ce n'est pas forcément facile de détecter l'état d'un traytip, mais en faisant une petite recherche sur le forum anglophone d'AutoIt, tu tombes sur un exemple de script qui permet de détecter un clic sur un traytip, mais aussi de détecter si le traytip se ferme (user ou timeout). ^^

Je te file le lien au cas où, et le script en spoiler :
► Afficher le texteScript provenant de Rover
Comme on dit chez eux, you're welcome :)

A bientôt !

PS: Sans certitude, l'UDF très complète "ModernMenu" de Holger permet de le faire assez facilement aussi. Mais tout ça n'est possible que si ton traytip provient de ton script (ou assimilé) il me semble.
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#3

Message par sylvanie »

le soucis avec le traytip, c'est que le winexist,wingethandle,etc ne fonctionne pas.

Je pensais à faire un gros truc bourrin (désolé pour l'expression, mais attendez la suite ...) qui consiste à lancer un winlist() avant et après l'appel au traytip pour faire un diff pour récupérer le handle.

C'est très infâme, et là je constate que le traytip apparaît chez moi systématiquement en deuxième position de l'énumération de winlist (la position 0 étant consacrée à la dimension du tableau)

du coups ce script de fiabilité "nitroglycérine" fonctionne chez moi :
► Afficher le texte
Si ça le fait chez vous, tant mieux ... mais bon ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#4

Message par Tlem »

J'ai trouvé ceci :
► Afficher le texte
mais étonnamment cela ne fonctionne pas !!! :cry:
Pourtant tout est bon, le handle et le WinExist, mais dans la boucle, ca ne fonctionne pas ...
Il doit me manquer un petit truc, mais là, je ne vois pas (je suis peut être un peu fatigué !!!). :mrgreen:
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é".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#5

Message par sylvanie »

J'avais utilisé ceci au début aussi, mais le handle indiqué (détecté aussi par au3info) n'est pas le vrai.
C'est là que je me suis rabattu sur le diff entre deux winlist(), et donc j'ai contaté que le handle retourné n'était pas celui qui gérait "pour de vrai" le tooltip.
pour faire plus propre que ce que j'ai proposé, il faudrait faire une fonction qui traîte les deux tableaux retournés par les winlist() de la manière suivante :
- On recréé 2 tableaux ne contenant que les handle
- On les trie
-On les parcours et on regarde à indice égale si ça diffère, alors le handle du 2eme tableau est (à 90%+des brouette) le handle cherché

Maintenant pourquoi le 90% ... et bien il se peut qu'entre les deux appels, des fenêtres de la session disparaissent ou se créent, et là pas de chance.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#6

Message par Tlem »

Rhhooo, ben alors, si AutoIt nous fait des blagues, maintenant ...
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é".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#7

Message par sylvanie »

A défaut de mieux voici ce que je proposais tout à l'heure en théorie :
► Afficher le texte
@Tlem : Et bien là je pense que le handle retouné est celui d'une fenêtre englobante, ce qui fausse le résultat ...

[EDIT]
inserrez les lignes suivantes après l'appel à la fonction de tri :
ConsoleWrite($handle&@CRLF)
ConsoleWrite(WinGetHandle("[CLASS:tooltips_class32]", "")&@CRLF)

vous verrez bien que les handles ne sont pas les mêmes
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#8

Message par Tlem »

J'ai trouvé des petites choses intéressantes ici :
- http://www.autoitscript.com/forum/topic ... _p__703181
- http://www.autoitscript.com/forum/topic ... __p__64671

Le dernier code, créé par valik est surprenant, mais il fonctionne parfaitement ...
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é".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#9

Message par sylvanie »

Ah oui, il est nickel
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

Re: [..] Lire l'état d'un TrayTip

#10

Message par keltharak »

Merci beaucoup pour vos réponses et vos solutions.

Je suis arrivé exactement au résultat que je recherchais grâce à la 2° solution de Tlem,

► Afficher le texte
Ca marche impeccable :) merci encore.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] Lire l'état d'un TrayTip

#11

Message par sylvanie »

L'implémentation de Rover est plus délicate au début à cerner, mais elle est plus adaptée à des situations du type :
- si j'ai un timeout du ballon alors je peux faire X
- Si l'utilisateur ferme avec la croix je peux faire Y
Du coups ça réponds aussi au problème, mais c'est limite "tops riche"

Il faut la garder en mémoire pour le jour où le cas se posera

PS : Il y a un post de ZDS qui c'est perdu dans les réponses ou j'ai révé ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

Re: [R] Lire l'état d'un TrayTip

#12

Message par keltharak »

Effectivement, ça permet plus de flexibilité.

Pour le post de ZDS, ce matin en lisant vos réponse je n'en avais qu'une...
Répondre