m_char is the message that handles characters a single character generates the following messages
wm_keydown, wm_keyup, wm_char with wm_char used to add the characters in focused window, an edit box for example.
there is no better ay than post/send message in windows since it is the native way that windows handles key board events. Just make sure that you use the function that makes more sense for you eg one of those will add the message to the window's message stack and return immediately while send message will wait until the window you send the message to handles that message before returning.
If I was doing something like that I would use the one that returns immediately to avoid any application locks in case of the selected window is otherwise occupied, at the same sending the last message waiting to be handled is a good way to debug problems.