Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Распознавание клавиш


Рекомендуемые сообщения

Вопрос может глупый, но всё же.

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

Хотелось бы узнать как это делается.

Всё на Delphi.

Ссылка на комментарий
Поделиться на другие сайты

Каждой кливише соответствует свой код, программа его считывает. Вот нашел у себя древнющую прогу (на Паскале правда, но какая разница?), которая этим и занимается. Таблицу кодов можно найти в любом справочнике. Еще где-то у меня была прога, которая выводит на экран сразу название клавиши - но где она, фиг знает, сто лет уже не юзал. Если ОЧЕНЬ надо, скажи, попробую найти. Если нужны пояснения к этой проге, тоже сообщи...

----------------------------------

Program ScanCodes;

uses

Dos;

var

r : registers;

begin {ScanCodes}

with r do

begin

repeat {1}

repeat {2}

Flags:= 0;

AH := 1;

Intr(22, r);

until Flags <> 0022; {2}

AH:= 0;

Intr(22, r);

writeln(AL:5, AH:5);

until (AL = 27) and (AH = 1); {1}

end;

end. {ScanCodes}

------------------------------

Чуть не забыл. Прога работает до нажатия Esc.

Изменено пользователем Stolik
Ссылка на комментарий
Поделиться на другие сайты

Коды клавиш я нашёл, но как, а точнее какая функция в Delphi распазнает эту самую клавишу.

Короче чё сказал, сам не понял. За код спасибо, но он мне сильно не помог, если не трудно, поищи ту прогу.

Ссылка на комментарий
Поделиться на другие сайты

skilk

Сейчас катастрофически нет времени, чесслово, поищу... Может случайно на глаза попадется. Скорее всего, надо искать на старых дискетах, а это долго.

Ссылка на комментарий
Поделиться на другие сайты

Нужные события:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);...procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);...procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);

Параметр Key - это то, что тебе надо.

Ссылка на комментарий
Поделиться на другие сайты

За KEY спасибо, но появилась другая проблема.

Дело в том, что я пытаюсь отследить нажатие клавиш с помощью HOOK, а он на KEY ругается, говорит что он UNDECLARED.

КАК БЫТЬ???

Ссылка на комментарий
Поделиться на другие сайты

Конечно undeclared, потому что Делфевая обработка события это одно, а hook - другое.

Посмотри здесь как ставится hook на перехват нажатий клавиш, а вот описание функции KeyboardProc, которая будет отлавливать нажатие клавиш. Параметр wParam и есть то, что тебе надо.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...