Activer un élément de menu

cs_Gerard Messages postés 121 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 7 août 2018 - 7 juil. 2009 à 06:43
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 8 juil. 2009 à 13:51
Bonjour,
Actuellement pour aller choisir et activer un élément de menu ou un sous menu d'une autre application, j'utilise le pointeur de la souris que je vais positionner par rapport aux bords de la fenêtre de cette application. Non seulement cela ne marche pas à tous les coups, mais cela dépend en plus de l'OS et des choix de présentation des utilisateurs...
N'y a-t-il pas, de façon analogue à sendmessage à une fenêtre, un moyen d'envoyer cette requête de menu à l'application ?

Merci.

gérard

4 réponses

cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
7 juil. 2009 à 09:07
Bj
      Je n'ai jamais fait ce genre de chose mais je te donnes quelques éléments en attendant que tu es une réponse plus précise.
1. il me semble que la technique concernée s'appelle un hook clavier ou mieux un hook de windows pour intercepter la frappe d'une touche depuis une autre appli. C'est donc une interception de message windows.
Tu captes un clic souris (voir API ou du SDK) ou autre évènement...  
2. Il te faut probablement capter le handle de l'appli que tu souhaite surveiller.
Ca te donnera peut-être des pistes pour tes recherches!
Bien à toi
Jean_Jean
0
cs_Gerard Messages postés 121 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 7 août 2018
7 juil. 2009 à 09:14
Merci, je n'avais pas pensé au hook clavier, que je ne connais pas bien mais que je vais exporer...
En effet en entrant des touches au clavier, Alt fait bien apparaître des petits traits sous les lettres qui déclenchent le menu.

Merci!
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
8 juil. 2009 à 13:35
Salut,

Utilise spy++ ou un utilitaire pour récupérer les messages envoyés à l'application lorsqu'un utilisateur clique sur le menu.

Ainsi, plutôt que d'envoyer des appui de touche (Avec PostMessage par exemple, Un hook ici est inutile), tu devrais pouvoir envoyer des messages WM_COMMAND.

Par exemple, lorsque je clique sur "Nouveau" dans le menu de notepad, c'est un WM_COMMAND avec un wParam à 1 qui est envoyé, si je clique sur Ouvrir, c'est un WM_COMMAND avec un wParam à 2 qui est envoyé...
0
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
8 juil. 2009 à 13:51
Merci rt15 pour ce rappel!
Ah oui, ces bons vieux messages de windows! Je ne suis plus trop habitué à cette technique, c'est très utile en effet.
A gérard:
Voici un lien qui t'aidera peut-être : http://www.delphipages.com/articles/delphi_visual_controls_and_windows_messages-9239.html
A+
Jean_Jean
0
Rejoignez-nous