Bonjour,

Tout d'abord, j'ai réalisé plusieurs recherches avant de venir poser ma question ici (et je me suis beaucoup aidé des tutos présent sur le site, je remercie par ailleurs toutes les personnes qui aident les gens comme nous).

Je dois, dans le cadre de mon entreprise réaliser un logiciel qui permettra d'écouter les événements réalisés sur une application tierce. C'est à dire que si l'utilisateur clique sur un bouton, nous devons intercepter ce clique et envoyé une de nos fonctions.

J'étais dans l'idée d'utiliser Automation (puisqu'en utilisant Spy++ / Inspect, je récupérai l'ID du bouton et je pouvais réaliser un enregistrement des événements dessus.). Il s'avère qu'Automation n'arrive pas à récupérer les données de certaines applications (suivant le langage).

Et maintenant comme le suggère le titre de mon post, je désire utiliser un Hook (en local pour écouter une application spécifique).
Mes raisons sont les suivantes :
- Il marche quelque soit le langage du logiciel tiers.
- Il permet d'écouter des événements
- Il peut savoir dans quel Thread il se trouve
- Il donne la position du curseur et via la position on peut deviner quel contrôleur se trouve dessous.
- En sachant quel contrôleur se trouve en dessous, je peux exécuter du code si c'est le bon contrôleur.

(Corrigez moi si j'ai mal compris les Hook )

Pour se faire j'ai suivi ce lien : http://humann.developpez.com/hook/#LII-B-1.
J'ai crée ma solution en C# dans Visual Studio mais, je n'arrive pas à voir comment exécuter l'écoute.

J'ai essayé ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
private void Form1_Load(object sender, EventArgs e)
        {
            var m_MouseHook = new MouseControler();
            m_MouseHook.GlobalHook.Start();
        }
D'abord essayé en Local pour voir si ma souris est écoutée. L'objet est bien crée mais il ne se passe rien.

Je pense qu'il me manque :

- Définir l'événement à écouter (Un clique)
- Exécuter du code lors du clique (MessageBox par exemple)

Dois-je créé une fonction du style :
OnMouseClicked ? Sachant que j'ai déjà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
private MouseEventHandler m_onMouseClick;
J'avais lu sur un autre forum une personne qui était passé par ce que je traverse actuellement. Il a corrigé son problème mais je ne comprend pas son passage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
m_MC = new MouseControler();
m_MC.GlobalHook.OnMouseClick += OnMouseClicked;
m_MC.GlobalHook.Start();
Lui a bien rajouté .OnmouseClick += OnMouseClicked (c'est de cette fonction dont je parle, je suppose que c'est quelque chose qu'il a codé à côté pour que ce soit réaliser lors du bon événement).

Passez une bonne journée,
Merci