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

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
В Windows вроде нет понятия буфера клавиатуры. Разве только в консольных приложениях. Если есть - пусть меня поправят. Все нажатия клавиш передаются через сообщения окну, имеющему фокус ввода, или могут быть перехвачены глобально. Т.е. для реагирования на клавиши нужно просто обрабатывать WM_KeyDown, WM_KeyUp, WM_KeyPress.
В любой Delphi форме (и в любом WinControl) эти сообщения обрабатываются и интерпретируются в вызовы KeyDown, KeyUp, KeyPress. Эти функции вызывают соответствующие события OnKeyXxxxx если таковые есть. Т.е. можно обрабатывать через OnKeyXxxxx, а можно переопределить KeyXxxxx.
Можно если надо ловить клавиши вообще для системы, не только для одного окна. Это, кажется, делается через hook-и. Но этим я занимался только раз и немножко. Если нужно - вспомню. |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

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

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
| А тебе что именно нужно отслеживать? Глобально или для какого-то окна? |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Можно поставить хук и DLLку писать не надо, хук на клаву у меня работает. |
|
| В начало |
|
 |
|