Хотите прямо сейчас получить бесплатный видеокурс по программированию для начинающих?

Как отследить нажатия клавиш клавиатуры (delphi)

Июль 11, 2013

Simanek_Keyboard_Keys_2В этом уроке разберемся как отследить нажатие клавиш клавиатуры. Это может пригодиться во многих случаях.

Итак приступим. Нам понадобиться TTimer с вкладки System. Свойство Interval свежедобавленного таймера лучше поставить в 10. В событии OnTime таймера пишем следующий код:

1
2
3
4
5
6
7
8
9
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer; //Вспомогательная переменная для цикла
begin
for i:=0 to 255 do //Перебираем все клавиши
if getasynckeystate(i)<>0 then  //если нажата клавиша с идентификатором i то
showmessage('Нажата клавиша '+inttostr(i)); //показываем сообщение что нажата клавиша i
 
end;

Обратите внимание что все клавиши включая клавиши мыши имеют идентификаторы от 0 до 255. (Кстати это легкий и простой способ узнать код клавиши которую вы нажимаете)

Каждые 10 миллисекунд мы прогоняем цикл опрашивая каждую из них. Во время всех этапов цикла опрашиваются ВСЕ клавиши. Поэтому если вам не нужно опрашивать все клавиши то лучше или уменьшить диапазон цикла или если вам нужно отслеживать только некоторые клавиши, то вовсе отказаться от цикла и заменить его несколькими условиями if getasynckeystate(код_клавиши)<>0 then

Наша программа будет реагировать на нажатия клавиатуры даже если сама программа не активна. Наш код будет работать в любом случае.

Если клавиша нажата то у нас показывается сообщение с кодом клавиши, но гораздо лучше эту информацию записывать или в файл, или в компонент memo, или реагировать любым другим способом. Но это уже зависит от ваших целей.

Вот так вот можно отследить нажатия клавиш. Это гораздо проще чем пользоваться так называемым хуком для захвата клавиш.



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Поддержите проект

Хит продаж:

Случайный анекдот

Моя вторая книга

Что это???

Программирование для Android:

Мы вконтакте

Помощь сайту

Понравился сайт? Он сильно нуждается в раскрутке.

Чтобы помочь в раскрутке - опубликуйте ссылку на сайт (или любую его страницу) на любом другом сайте в интернете. Тогда сайт станет чуточку популярнее.

Или просто нажмите на кнопки социальных сетей которые стоят в конце каждой статьи

Вместе мы сможем сделать программирование более популярным и более понятным для всех!

Заранее спасибо!
Артём Кашеваров.