If I send a WM_KEYDOWN message (using wndproc) will the computer hold the key down until I send WM_KEYUP?

Tag: windows , keyboard , simulation , wndproc Author: yezi523319 Date: 2010-01-02

I am looking for a solution to programmatically hold a keyboard key down during some time (I don't know how many time).

I think that if I send a WM_KEYDOWN message the key will be held down until WM_KEYUP is send, but I am not sure.

I would test it. But I need to go and I don't have much time. I want to see if someone already tested this.

Here is an other question I posted, related to this one.
click me

Other Answer1

No, because If you examine the messages sent when using the keyboard, you'll see that the message are as follow:

WM_KEYDOWN
WM_KEYPRESS
WM_KEYUP

The WM_KEYPRESS message is sent every couple of ticks (depending on the keyboard configuration).

comments:

So I need to send WM_KEYDOWN then send WM_KEYPRESS repetevely and then stop and send an WM_KEYUP message. will this work?

Other Answer2

WM_KEYDOWN and WM_KEYUP are messages generated by the system - it's dependent on how the application interprets those messages. Synthesizing these messages will have no effect on the actual keyboard state.

If you want to simulate keyboard input, use the SendInput API.