Программа, позволяющая определить, какой код генерируется той или иной клавишей (или комбинацией клавиш), а также выявить клавиши и комбинации, не генерирующие никакого кода.
Program KeyCodes;
uses crt;
var
a: char;
begin
while KeyPressed do a:=ReadKey;
repeat
a:=ReadKey;
if ord(a)=0 then
begin
write('0':2);
a:=ReadKey;
writeln(ord(a):11);
writeln;
end else
begin
writeln(a:8, ord(a): 5);
writeln
end;
until a='1';
end.
В этой программе прежде всего освобождается буфер клавиатуры.
while KeyPressed do a:=ReadKey
После этого организуется цикл REPEAT, в теле которого определяется, что собой представляет данный код - простой он или расширенный (расширенный код начинается с нуля). И в соответствии с типом кода организуется его вывод на экран в удобном формате. В окне Output в первом столбце отображается нуль, если это расширенный код. И вот что отображается в третьем столбце:-если это простой код - ASCII-код данного символа;
-если это расширенный код клавиши (в случае если данная клавиша генерирует расширенный код) - скэн-код данной клавиши;
-если это расширенный код комбинации клавиш - номер данной комбинации.
В программе условием прекращения цикла является нажатие клавиши <1> (единица). Однако если потребуется определить, какой код соответствует этой клавише, символ в условии можно заменить на любой другой.
(Скэн-код - код, присвоенный каждой клавише, с помощью которого драйвер клавиатуры распознает, какая клавиша была нажата.)