![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Владимир |
|
|||
|
Unregistered |
Здраствуйте коллеги,нуждаюсь в вашей помощи.Проблема вот какая.
Делаю обыкновенный хук. При нажатии комбинации алт +а должен вставляться определенный символ,но он просто напросто игнорируеться системой,не могу понять по какой причине. Первый кейс не работает зато второй в полном порядке. Не могу найти причину,раскладку переключаю на русский шрифт(так нужно). Думаб что проблема в этом. case 'A': const char *a; a="Ј"; put_text(a); break; case 'B': put_text("Это другой текст"); break; |
|||
|
||||
| Гость_Владимир |
|
|||
|
Unregistered |
AnsiString r;
r='£'; Сейчас кинул лайбел и мемо при нажатие на лейбел вставляеться символ. Так почему он не вставляеться в первом варианте |
|||
|
||||
| Гость_Владимир |
|
|||
|
Unregistered |
Подскажите хоть в каком направлении двигаться заранее спасибо за любое содействие.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Клавиши, нажимаемые с ALT не генерируют WM_KEYDOWN, см. MSDN (также как и кл. F10). Вместо этого можно перехватить WM_SYSKEYDOWN. И вообще, я бы рекомендовал использовать вместо хука WH_KEYBOARD хук WH_GETMESSAGE (для сообщений, посланных SendMessage) + хук на WH_CALLWNDPROC (для сообщений, доставаемых системой из очереди - например, посланных PostMessage, а также мессаги типа WM_MOUSEMOVE).
-------------------- ![]() |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Был бы очень признателен за маленький пример.
|
|||
|
||||
| Гость_Владимир |
|
|||
|
Unregistered |
Когда ты ловишь нажатия клавиш хуком WH_KEYBOAD, то через твою функцию проходят ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ. Вернув не нуль, ты можешь какое-то нажатие/отжатие отменить и там же с помощью keybd_event сымитировать другое нажатие. WM_KEYDOWN применимо толко к окну, которого у тебя нет.
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Насчёт "WM_KEYDOWN применимо толко к окну, которого у тебя нет" - не понятно, что имеется ввиду. "ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ" тоже неправильно: не ловятся клавиши, нажимаемые вместе с ALT. -------------------- ![]() |
|||
|
||||
| Гость_Владимир |
|
|||
|
Unregistered |
Поповоду"ВСЕ НАЖАТИЯ/ОТЖАТИЯ КЛАВИШ"
пример перед тобой все работает case 'B': put_text("Это другой текст"); break; |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |