Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Снова работа с клавиатурой


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Gordon01
Гость







СообщениеЧт, 17-Авг-2006 17:51    Заголовок сообщения: Снова работа с клавиатурой
Цитата

Есть длл для хука клавиатуры(в каких-то советах взял).
Там можно поставить хуки на разные клавиши. Кусок кода:
VK_Up: SendMessage(H, wm_UpShow_Event, 0, 0);
Ну как можно добавить клавишу понятно, а вот как добавить условие нажатости Шифта контрола или альта?
В функцииях типа OnKeyPress всё просто - там есть массив Shift.
А тут его нет.

Вобщем вопрос: как можно узнять, нажаты ли клавиши-модификаторы?
В начало
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеЧт, 17-Авг-2006 19:17 
Цитата

1. а RegisterHotKey не помогает?
2. наверно, через lparam, но там какая-то мура:
---
lParam
[in] Specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag. For more information about the lParam parameter, see Keystroke Message Flags. This parameter can be one or more of the following values.
0-15
Specifies the repeat count. The value is the number of times the keystroke is repeated as a result of the user's holding down the key.
16-23
Specifies the scan code. The value depends on the OEM.
24
Specifies whether the key is an extended key, such as a function key or a key on the numeric keypad. The value is 1 if the key is an extended key; otherwise, it is 0.
25-28
Reserved.
29
Specifies the context code. The value is 1 if the ALT key is down; otherwise, it is 0.
30
Specifies the previous key state. The value is 1 if the key is down before the message is sent; it is 0 if the key is up.
31
Specifies the transition state. The value is 0 if the key is being pressed and 1 if it is being released.

_________________
Сила дурака в том, что умный перед ним бессилен.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеПт, 18-Авг-2006 1:51 
Цитата

Посмотри WINSDK, тот что с дельфи идет. Если не найдешь, то MSDN.com. А так насколько помню, то lparam должно содержать всю маску клавишь.
_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеПт, 18-Авг-2006 4:49 
Цитата

Попробуй функцию GetKeyState.
она принимает всего один параметр - виртуальный код клавиши (см. константы, начинающиеся с VK_*).
я обычно ее использую с константами VK_SHIFT, VK_CONTROL, VK_MENU.
например:
delphi:
  1. if GetKeyState(VK_MENU) < 0 then
  2.  // кнопка Alt нажата
  3.  

_________________
Пойду посплю перед сном.
В начало
Посмотреть профиль Отправить личное сообщение
Gordon01
Гость







СообщениеПт, 18-Авг-2006 5:24 
Цитата

to Ktf
Ага, вчера погуглил и нашёл это.
В начало
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100