Как отправить событие сообщения клавиатуры с кириллицей - PullRequest
0 голосов
/ 17 июня 2011

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

SendKeyboardMessage(handle, WM_KEYDOWN, Convert.ToInt32(key), 0);
SendKeyboardMessage(handle, WM_KEYUP, Convert.ToInt32(key), 0);

, но третий аргумент имеет тип "Keys" и кириллический символ отсутствует.

Так как отправить событие клавиатуры с символами кириллицы?

Важно отправить сообщение приложению, которое НЕ является глобальным

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Возможно, попробуйте сначала изменить раскладку клавиатуры на кириллицу, а затем смоделировать события клавиатуры.

Я нашел этот код проекта , который показывает, как вы можете изменить макет.

Надеюсь, что поможет

0 голосов
/ 17 июня 2011

Та же функция должна работать и для кириллицы.

Вы понимаете разницу между KEY и CHARACTER? Клавиши на вашей клавиатуре, а символы - это то, что нарисовано на экране. WM_KEYDOWN и WM_KEYUP не отправляют символы, они отправляют ключи. Keys Тип данных охватывает клавиатуру как аппаратное обеспечение - у вас всегда есть те же самые 102 клавиши или около того, независимо от того, что они означают на вашем местном языке. Эти ключи позже преобразуются в символы, используя активную кодовую страницу. Вот почему вы можете использовать ту же функцию для Cyrilic, просто переключите активную кодовую страницу на Cyrilic и отправьте правильные названия клавиш, как если бы это было с клавиатуры u.s.english.

...