![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Mark4545 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Код приложение
Код dll.Cpp
Код dll.h [*]
Проблема в том что сообщение key press выводиться только тогда когда я наэимаю клавишу в visual C++ 2003(Мистика,даже если висуал с++ не запущен нигде не перехватываеться, а как запущу висуал С++ и начинаю жать там клавишы идет перехват). А например когда открываю блокнот то 0 эмоций(вернее только выводиться attach на мессадж боксе а при нажатии клавиши нету мессаджа ). Заранее всем кто помого спс. Это сообщение отредактировал(а) Mark4545 - 16.7.2007, 16:21 |
||||||
|
|||||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
По задумке сообщение key press должно появляться когда я жму любую клавишу в любом окне.
|
|||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Народ что никто не знает в чем же проблема?
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
прагмы смущают чуток.. попробуй убрать лишнее пока...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
так тут так на угад не поможешь, надо конкретоное что то. и в чем ошибка
|
|||
|
||||
| 586 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
mydll.cpp
app.cpp
Это сообщение отредактировал(а) 586 - 17.7.2007, 14:42 |
||||
|
|||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 7 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Огромное спс 586, откомпилил код вроде пашет , даже букву какую нажал пишет, щас буду курить его.
И еще что значит (lParam & 0x40000000)). |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Значит установить 31 бит и сбросить все остальные. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
||||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
скорее всего да, но по куску кода просто сбросить все биты кроме 31. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
А попроще какнить можно, что в этом 31 бите содержиться.
|
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
||||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Ну это вам спецам, проще некуда,потому что вы знаете это как 5 пальцев. все знакомо.
А мне пока не понятно если не трудно обьясни для чего этот код нужен |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
судя по этим фрагментам, установленный 31-й бит говорит о том, была нажата клавиша, вот мы его и проверяем |
|||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Так посмотрел в описание lParam Keyboardproc
нашел lParam Определяет счет повторений, скэн-код, флажок расширенной - клавиши, контекстный код, флажок предыдущего состояния клавиши и флажок переходного состояния. Этот параметр может быть комбинацией следующих значений: 0-15 - Определяет счет повторений. Значением является число нажатий клавиши, которое повторено в результате пользовательского удерживания нажатия клавиши. 16-23 - Определяет скэн-код. Значение зависит от фирмы-изготовителя оборудования (OEM). 24 - Определяет, является ли клавиша расширенной клавишей, типа функциональной или клавиши на цифровой клавиатуре. Если клавиша является расширенной, это значение равно 1, иначе, оно - 0. 25-28 - Зарезервировано. 29 - Определяет код контекста. Это значение является 1, если нажата клавиша ALT; иначе, оно - 0. 30 - Определяет предыдущее состояние клавиши. Это значение является 1, если клавиша была нажата перед отправкой сообщения. Оно - 0, если клавиша была не нажата. 31 - Определяет переходное состояние. Это значение 0, если клавиша нажимается и 1, если клавиша отпускается т.е тут я как понял сообщение будет итти когда клавиша отжимаеться |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 4 Всего: 47 |
||||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
получается так те получается так, как написано: 1, если клавиша отпускается Это сообщение отредактировал(а) zkv - 17.7.2007, 14:24 |
|||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
читал, но не совсем разобрался, исходя из этой статьи , совй простенький сурс писал.
|
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
Всего в lParam 32 бита, обратите внимание что отсчет битов начинаеися с нуля => последний бит 31. 0x40000000 - это 30 бит Добавлено через 5 минут и 18 секунд подправил код - выдает мессадж бокс при нажатии |
|||
|
||||
| Mark4545 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 111 Регистрация: 6.11.2006 Репутация: нет Всего: нет |
Народ вот выше я привел доку какой код что значит, а как это все использовать.кто может обьяснить.
|
|||
|
||||
| 586 |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
bool isExtended=(lParam & (1<<24)); // обрати внимание, что выражение (lParam & (1<<24)) будет либо равно нулю, либо не равно нулю (будет равно (1<<24)), при присвоении к bool-переменной превращается в неверное или верное утверждение.
bool bDown=!(lParam & (1<<30));
|
||||||||||
|
|||||||||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |