Если я отправлю сообщение WM_KEYDOWN (используя wndproc), будет ли компьютер удерживать клавишу нажатой, пока я не отправлю WM_KEYUP? - PullRequest
1 голос
/ 19 января 2010

Я ищу решение для программного удержания клавиши клавиатуры в течение некоторого времени (я не знаю, сколько раз).

Я думаю, что если я отправлю сообщение WM_KEYDOWN, ключ будет удерживаться до отправки WM_KEYUP, но я не уверен.

Я бы проверил это. Но мне нужно идти, и у меня не так много времени. Я хочу посмотреть, проверял ли кто-нибудь это.

Вот еще один вопрос, который я написал, связанный с этим.
Я хочу сделать виртуальную клавиатуру. Нужно ли отправлять WM_KEYDOWN в текущее активное окно или HWND_BROADCAST?

Ответы [ 2 ]

1 голос
/ 19 января 2010

Нет, потому что если вы изучите сообщения, отправленные при использовании клавиатуры, вы увидите, что сообщение выглядит следующим образом:

WM_KEYDOWN
WM_KEYPRESS
WM_KEYUP

Сообщение WM_KEYPRESS отправляется каждые пару тиков (в зависимости от конфигурации клавиатуры).

0 голосов
/ 19 января 2010

WM_KEYDOWN и WM_KEYUP - это сообщения, сгенерированные системой - это зависит от того, как приложение интерпретирует эти сообщения. Синтез этих сообщений не повлияет на фактическое состояние клавиатуры.

Если вы хотите смоделировать ввод с клавиатуры, используйте API SendInput .

...