Jump to content
СофтФорум - всё о компьютерах и не только

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


skilk
 Share

Recommended Posts

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

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

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

Всё на Delphi.

Link to comment
Share on other sites

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

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

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.

Edited by Stolik
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

skilk

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

Link to comment
Share on other sites

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

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 - это то, что тебе надо.

Link to comment
Share on other sites

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

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

КАК БЫТЬ???

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...