views:

350

answers:

2

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.
http://stackoverflow.com/questions/2090058/i-want-to-make-a-virtual-keyboard-do-i-need-to-send-wmkeydown-to-the-current-ac

A: 

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).

Paulo Santos
So I need to send WM_KEYDOWNthen send WM_KEYPRESS repetevely and then stop and send an WM_KEYUP message.will this work?
Aaron de Windt
A: 

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.

Michael