Je crois que tu te trompes, enfin pas tout à fait mais on va éclaircir tout ça :
- Effectivement WH_KEYBOARD_LL est un hook global par défaut, mais j'install bien un hook global pour WH_KEYBOARD. En effet WH_KEYBOARD peut avoir une portée "thread" ou "global" (cf tableau dans
remarks). C'est le 4ème argument de SetWindowsHookEx() qui détermine la portée de hook.
- Mon premier point est confirmé : le hook global fonctionne bien. A chaque pression d'une touche au clavier je log dans "c:\log.txt" la valeur 0 qui doit correspondre à HC_ACTION.
Voilà pour le hook
Pour ce qui est de Dllimport bien sur que je l'utilise mais plutôt que d'exporter plusieurs fonctions de ma dll j'utilise les mecanismes
LoadLibrary/FreeLibrary afin d'executer le code de la fonction DllMain (non joignable autrement). De toute façon le problème n'est pas là le hook fonctionne bien.Réaliser le hook en C# n'a aucun interêt pour moi : en réalité je me fou totalement du type du hook utilisé, à terme j'aurai besoin de WH_CBT, WH_SHELL et WH_SYSMSGFILTER. Mais pour des raisons de tests j'utilise WH_KEYBOARD.
Comme mon titre l'indique c'est uniquement la communication entre ma dll et mon appli console qui m'interesse et me pose problème. Je pense que le soucis est au niveau de la fonction SendMessage (ligne 31 de dllmain.cpp).