Как я могу удерживать клавишу, используя keybd_event в C # - PullRequest
0 голосов
/ 20 марта 2019

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

[DllImport("user32.dll", SetLastError = true)]        
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

keybd_event(key, 0, 0, 0); //Start holding the key down
keybd_event(key, 0, KEY_UP_EVENT, 0); //Stop holding the key down

Удерживая клавишу Shift, при отправке писем их уже заглавные буквы.Но если я удерживаю письмо (и отправляю его в блокнот, например), то просто пишу это письмо один раз.Если я делаю то же самое с моей физической клавиатурой, она начинает писать письмо, пока я не отпущу снова.У кого-нибудь есть совет или подсказка, как мне это сделать?

Я уже экспериментировал с секундомером, но он тоже не работал.

1 Ответ

0 голосов
/ 20 марта 2019

Благодаря @RaymondChen, на этот вопрос дан ответ.

Физические клавиатуры имеют функцию «typematic», которая автоматически повторяет символы, которые удерживаются.Вам также придется эмулировать это.

Если вы хотите смоделировать повторение нажатия клавиши, просто отправьте несколько KeyDown и KeyUP-Events.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...