unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
edt1: TEdit;
lbl1: TLabel;
edt2: TEdit;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
procedure edt1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt2Change(Sender: TObject);
procedure getKey(Key:Word);
private
{ Private declarati** }
public
{ Public declarati** }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.edt1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
getKey(Key);
end;
procedure TForm1.edt2Change(Sender: TObject);
begin
getKey(StrToInt(edt2.Text));
end;
procedure TForm1.getKey(Key: Word);
var
keyname:string;
begin
self.edt2.Text:=IntToStr(Key);
if Key<48 then begin//控制键
case Key of
1: keyname:='LeftButton';
2: keyname:='RightButton';
3: keyname:='Cancel';
4: keyname:='MiddleButton';
8: keyname:='Backspace';
9: keyname:='Tab';
12: keyname:='Clear(NumLock关闭时的Num5)';
13: keyname:='Enter';
16: keyname:='Shift';
17: keyname:='Ctrl';
18: keyname:='Alt';
19: keyname:='Pause';
20: keyname:='CapsLock';
27: keyname:='Ese';
32: keyname:='Space';
33: keyname:='PageUp';
34: keyname:='PageDomw';
35: keyname:='End';
36: keyname:='Home';
37: keyname:='Left';
38: keyname:='Up';
39: keyname:='Right';
40: keyname:='Down';
41: keyname:='Select';
42: keyname:='Print';
43: keyname:='Execute';
44: keyname:='PrintScreen';
45: keyname:='Ins(NumLock关闭时Num0)';
46: keyname:='Del(NumLock关闭时Num.)';
47: keyname:='Help';
else
keyname:='';
end;
end
else if (Key>=48) and (Key<=90) then//字母和数字 0-9 a-z
keyname:=Char(Key)
else if (Key>=91) and (Key<=95) then begin//
case Key of
91: keyname:='LeftWindows';
92: keyname:='RightWindows';
93: keyname:='Apps(右Ctrl左边键相当于鼠标右键菜单)';
else ;
keyname:='';
end;
end
else if ((Key>=96) and (Key<=127)) then begin//小键盘 Num 0 - Num 9 Num(*+-./)功能键 F1-F16
case Key of
96: keyname:='Num 0';
97: keyname:='Num 1';
98: keyname:='Num 2';
99: keyname:='Num 3';
100: keyname:='Num 4';
101: keyname:='Num 5';
102: keyname:='Num 6';
103: keyname:='Num 7';
104: keyname:='Num 8';
105: keyname:='Num 9';
106: keyname:='Num *';
107: keyname:='Num +';
108: keyname:='Separator';
109: keyname:='Num -';
110: keyname:='Num .';
111: keyname:='Num /';
112: keyname:='F1';
113: keyname:='F2';
114: keyname:='F3';
115: keyname:='F4';
116: keyname:='F5';
117: keyname:='F6';
118: keyname:='F7';
119: keyname:='F8';
120: keyname:='F9';
121: keyname:='F10';
122: keyname:='F11';
123: keyname:='F12';
124: keyname:='F13';
125: keyname:='F14';
126: keyname:='F15';
127: keyname:='F16';
else
keyname:='';
end;
end
else if Key>123 then begin//符号键
case Key of
144:keyname:='NumLock';
145:keyname:='ScrollLock';
186:keyname:=';';
187:keyname:='=';
188:keyname:=',';
189:keyname:='-';
190:keyname:='.';
191:keyname:='/';
192:keyname:='~';
219:keyname:='[';
220:keyname:='';
221:keyname:=']';
222:keyname:='''';
else ;
keyname:='';
end;
end;
Self.edt1.Text := keyname;
end;
end.
|