What Sendmessage To Use To Send Keys Directly To Another Window?
Solution 1:
When I wrote the question, I understood that SendKeys
is the correct way to generate keyboard input, and that's the only one that works in all cases. However, I couldn't use SendKeys
, cause the computer my program is running on will be actively used while my program is running, meaning a mouse-click can happen at any time that will change the focus of the window and make SendKeys
start sending input to the wrong window.
What I wanted to know was just why in particular my code wasn't working - was I doing something wrong with the types of messages I was sending? Post
vs. Send
? What should WPARAM
be? Etc... The answer was probably cause I was sending the messages to the Notepad window, and not to the edit control found inside Notepad - I suspect that will work.
Anyway, I tried sending input to the app I wanted it to actually work on, and this ended up working:
def send_input_hax(hwnd, msg):
for c in msg:
if c == "\n":
win32api.SendMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32api.SendMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
else:
win32api.SendMessage(hwnd, win32con.WM_CHAR, ord(c), 0)
So the answer is that I wasn't doing anything wrong in terms of the message types or the contents of the message, it was just to an incorrect destination.
Post a Comment for "What Sendmessage To Use To Send Keys Directly To Another Window?"