Qqun peut me dire ce qu'est une injection de dll svp ? Intercepter tous les appels d'une dll pour faire exécuter une fonction qu'on veut modifier ?
Si tu veux, le WM_CHAR devrait normalement te convertir VK_A en 'a'… Ce message transmet un caractère UTF-16 (et tu as WM_UNICHAR pour de l'UTF-32).
Et en fait dans la plupart des cas, tu veux que le message soit directement exécuté par la procédure de fenêtre, donc utiliser SendMessage est le bon choix. En revanche c'est un appel bloquant, et ça ne sert a rien si tu n'as pas besoin de synchronisation exacte.
PostMessage lui, va balancer un message par la route standard, l'application va donc le voir et pouvoir le filtrer et/ou le traiter comme bon lui semble. Des fonctions comme TranslateAccelerator et TranslateMessage vont décoder les messages d'entrée clavier et en générer d'autres. (Par exemple, WM_COMMAND pour les accélérateurs ou WM_CHAR pour les touches d'entrée standard gérées par TranslateMessage)
De ton côté, si tu crées un contrôle Win32, c'est plus intéressant d'utiliser WM_CHAR quand tu peux, car tu vas directement recevoir le caractère à ajouter dans ton buffer (enfin aussi les caractères backspace, tab et return, de mémoire… normalement tous ceux qui ont une représentation ASCII)
