Читайте символы клавиатуры, чтобы определить ярлыки [закрыто]

StackOverflow https://stackoverflow.com/questions/412366

Вопрос

Я работаю над приложением документов, и часть этого приложения должна добавить поддержку для чтения событий нажатия клавиатуры и замены предопределенного набора символов, если эта запись клавиатуры совпадает с предварительно определенной краткой формой / слово. Реальное приложение реализовано на C ++.

Пожалуйста, расскажите мне, как это реализовать. Есть ли пример программы на C ++ для справки? Алгоритм / понятие?

Это было полезно?

Решение

Стандартный C ++ не поддерживает события нажатия клавиш, поэтому вам придется взглянуть либо на функцию ОС, либо на функцию фреймворка. Переносимые платформы C ++, такие как wxWidgets или Qt, поддерживают события нажатия клавиш в Windows, Mac и Linux.

Другие советы

Узнайте, как отлавливать события нажатия клавиш, используя wxWidgets api, возможно, здесь: http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverview/ > обратите внимание на ключевые события . Реализуйте переключатель в C ++, чтобы увидеть, какая комбинация клавиш была нажата, и соответственно установите текст для редактирования. Здесь я думаю о том, чтобы преобразовать нажатие клавиши CTRL-SHIFT-A в текст, такой как Ctrl-Shift-a, в поле редактирования.

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

Если вы находитесь под Windows, вы можете использовать вызов API GetAsyncKeystate и следить за изменениями или использовать низкоуровневые клавиатурные хуки (немного более сложные) (CreateHookEx + связанные функции).

В DOS (или, возможно, в Linux) вы можете использовать _kbhit в conio.h в режиме консоли, я обычно вставляю это в цикл (в то время как (! _ kbhit ());) для " нажмите любую клавишу, чтобы продолжить " ;, но с помощью _getch можно получить нажатую клавишу

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top