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

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


Чтение клавиш


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







СообщениеПн, 03-Мар-2003 11:19    Заголовок сообщения: Чтение клавиш
Цитата

Подскажите как можно читать из буфера(клавиатуры) нажатые клавиши.
В начало
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеПн, 03-Мар-2003 14:53 
Цитата

В Windows вроде нет понятия буфера клавиатуры. Разве только в консольных приложениях. Если есть - пусть меня поправят. Все нажатия клавиш передаются через сообщения окну, имеющему фокус ввода, или могут быть перехвачены глобально. Т.е. для реагирования на клавиши нужно просто обрабатывать WM_KeyDown, WM_KeyUp, WM_KeyPress.

В любой Delphi форме (и в любом WinControl) эти сообщения обрабатываются и интерпретируются в вызовы KeyDown, KeyUp, KeyPress. Эти функции вызывают соответствующие события OnKeyXxxxx если таковые есть. Т.е. можно обрабатывать через OnKeyXxxxx, а можно переопределить KeyXxxxx.

Можно если надо ловить клавиши вообще для системы, не только для одного окна. Это, кажется, делается через hook-и. Но этим я занимался только раз и немножко. Если нужно - вспомню.
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПн, 03-Мар-2003 18:49 
Цитата

Буфера клавы нет, но есть очередь сообщений - буфер всего. Ну а перехват - дело техники. Можно хук повесить, а если интересует конкретное окно, то разумнее перехватить оконную функцию
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеВт, 04-Мар-2003 14:24 
Цитата

А тебе что именно нужно отслеживать? Глобально или для какого-то окна?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Тяма
Гость







СообщениеЧт, 07-Авг-2003 2:13 
Цитата

Можно поставить хук и DLLку писать не надо, хук на клаву у меня работает.
В начало
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

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