![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В программировании являю полное соответствие своему логину. Требуется помощь.
Как подменять нажатые на клавиатуре клавиши в другом приложении? Т.е. имеется следующая ситуация: пользователь, запустив приложение (неважно какое, в том числе Direct3D или OpenGL) чего-то там чепятает (ну например чат на транслите). Задача: то, что чепятает пользователь не выводить на экран, а выводить уже замененный текст (причем не обязательно соответствие одной буквы другой, соответствие может быть одной буквы нескольким, как например, русское "Ш можно получить из англицких "S" и "H") Пример: Пользователь пишет "privet" и нажимает Enter, чтобы послать сообщение, а на экран выводится "привет". В идеале нужно чтобы подмена символов происходила на лету, т.е. при нажатии латинской "p" в строке ввода текста проявлялась уже русская "п" Если нет возможности менять раскладку (например, не поддерживается приложением), то можно подменять идентификаторы клавиш. В таком случае пользователь может написать в строке ввода "ghbdtn", что автоматически заменится другими клавишами на "npuBeT" (с соответствием нескольких букв одной - "gk.irf"="n/\l-0lllKA") Все это должно происходить при нажатии горячей клавиши (чтоб оставить возможность писать некоторые слова без изменения) Другими словами, требуется этакий фоновый транслитератор ![]() Последний раз редактировалось Chaynik, 05.12.2007 в 19:31. |