請問有沒有人知道"←","↑","↓","→"鍵值的ASCII碼? 如題! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 16 进制 10 进制left 25 37up 26 38down 28 40 right 27 39 你只要在一个窗体的Keydown时间中 showmessage(inttostr(key));运行后你按哪个键就能显示哪个键的ASCII码procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin showmessage(inttostr(key));end; to fenglaile(风清飘) :我試過了,ascii碼值為37,38,39,40對應的字符分別是%,&,',(.to hp0773() :你這种方法對于一般的字符可以實現,但對于控制字符,比如象f1,up,crtl就不行. {$EXTERNALSYM VK_LEFT} VK_LEFT = 37; {$EXTERNALSYM VK_UP} VK_UP = 38; {$EXTERNALSYM VK_RIGHT} VK_RIGHT = 39; {$EXTERNALSYM VK_DOWN} VK_DOWN = 40; 不是吧 记的以前用汇编时 这几个键的键值是2个byte的 Delphi 键盘码表 资料来源:Delphi Windows 单元文件 表格整理:http://www.netgocn.com VK_LBUTTON = 1;VK_RBUTTON = 2;VK_CANCEL = 3;VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON }VK_BACK = 8;VK_TAB = 9;VK_CLEAR = 12;VK_RETURN = 13;VK_SHIFT = $10;VK_CONTROL = 17;VK_MENU = 18;VK_PAUSE = 19;VK_CAPITAL = 20;VK_KANA = 21;VK_HANGUL = 21;VK_JUNJA = 23;VK_FINAL = 24;VK_HANJA = 25;VK_KANJI = 25;VK_CONVERT = 28;VK_NONCONVERT = 29;VK_ACCEPT = 30;VK_MODECHANGE = 31;VK_ESCAPE = 27;VK_SPACE = $20;VK_PRIOR = 33;VK_NEXT = 34;VK_END = 35;VK_HOME = 36;VK_LEFT = 37;VK_UP = 38;VK_RIGHT = 39;VK_DOWN = 40;VK_SELECT = 41;VK_PRINT = 42;VK_EXECUTE = 43;VK_SNAPSHOT = 44;VK_INSERT = 45;VK_DELETE = 46;VK_HELP = 47;{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }VK_LWIN = 91;VK_RWIN = 92;VK_APPS = 93;VK_NUMPAD0 = 96;VK_NUMPAD1 = 97;VK_NUMPAD2 = 98;VK_NUMPAD3 = 99;VK_NUMPAD4 = 100;VK_NUMPAD5 = 101;VK_NUMPAD6 = 102;VK_NUMPAD7 = 103;VK_NUMPAD8 = 104; VK_NUMPAD9 = 105;VK_MULTIPLY = 106;VK_ADD = 107;VK_SEPARATOR = 108;VK_SUBTRACT = 109;VK_DECIMAL = 110;VK_DIVIDE = 111;VK_F1 = 112;VK_F2 = 113;VK_F3 = 114;VK_F4 = 115;VK_F5 = 116;VK_F6 = 117;VK_F7 = 118;VK_F8 = 119;VK_F9 = 120;VK_F10 = 121;VK_F11 = 122;VK_F12 = 123;VK_F13 = 124;VK_F14 = 125;VK_F15 = 126;VK_F16 = 127;VK_F17 = 128;VK_F18 = 129;VK_F19 = 130;VK_F20 = 131;VK_F21 = 132;VK_F22 = 133;VK_F23 = 134;VK_F24 = 135;VK_NUMLOCK = 144;VK_SCROLL = 145;{ VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys.Used only as parameters to GetAsyncKeyState() and GetKeyState().No other API or message will distinguish left and right keys in this way. }VK_LSHIFT = 160;VK_RSHIFT = 161;VK_LCONTROL = 162;VK_RCONTROL = 163;VK_LMENU = 164;VK_RMENU = 165;VK_PROCESSKEY = 229;VK_ATTN = 246;VK_CRSEL = 247;VK_EXSEL = 248;VK_EREOF = 249;VK_PLAY = 250;VK_ZOOM = 251;VK_NONAME = 252;VK_PA1 = 253;VK_OEM_CLEAR = 254; 在keypress 中if key=#37 then //就响应呀要不你这样看看chr(37),看看 它们没有ASC码,只有扫描码! { Virtual Keys, Standard Set } VK_LBUTTON = 1; {$EXTERNALSYM VK_RBUTTON} VK_RBUTTON = 2; {$EXTERNALSYM VK_CANCEL} VK_CANCEL = 3; {$EXTERNALSYM VK_MBUTTON} VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON } {$EXTERNALSYM VK_BACK} VK_BACK = 8; {$EXTERNALSYM VK_TAB} VK_TAB = 9; {$EXTERNALSYM VK_CLEAR} VK_CLEAR = 12; {$EXTERNALSYM VK_RETURN} VK_RETURN = 13; {$EXTERNALSYM VK_SHIFT} VK_SHIFT = $10; {$EXTERNALSYM VK_CONTROL} VK_CONTROL = 17; {$EXTERNALSYM VK_MENU} VK_MENU = 18; {$EXTERNALSYM VK_PAUSE} VK_PAUSE = 19; {$EXTERNALSYM VK_CAPITAL} VK_CAPITAL = 20; {$EXTERNALSYM VK_KANA } VK_KANA = 21; {$EXTERNALSYM VK_HANGUL } VK_HANGUL = 21; {$EXTERNALSYM VK_JUNJA } VK_JUNJA = 23; {$EXTERNALSYM VK_FINAL } VK_FINAL = 24; {$EXTERNALSYM VK_HANJA } VK_HANJA = 25; {$EXTERNALSYM VK_KANJI } VK_KANJI = 25; {$EXTERNALSYM VK_CONVERT } VK_CONVERT = 28; {$EXTERNALSYM VK_NONCONVERT } VK_NONCONVERT = 29; {$EXTERNALSYM VK_ACCEPT } VK_ACCEPT = 30; {$EXTERNALSYM VK_MODECHANGE } VK_MODECHANGE = 31; {$EXTERNALSYM VK_ESCAPE} VK_ESCAPE = 27; {$EXTERNALSYM VK_SPACE} VK_SPACE = $20; {$EXTERNALSYM VK_PRIOR} VK_PRIOR = 33; {$EXTERNALSYM VK_NEXT} VK_NEXT = 34; {$EXTERNALSYM VK_END} VK_END = 35; {$EXTERNALSYM VK_HOME} VK_HOME = 36; {$EXTERNALSYM VK_LEFT} VK_LEFT = 37; {$EXTERNALSYM VK_UP} VK_UP = 38; {$EXTERNALSYM VK_RIGHT} VK_RIGHT = 39; {$EXTERNALSYM VK_DOWN} VK_DOWN = 40; {$EXTERNALSYM VK_SELECT} VK_SELECT = 41; {$EXTERNALSYM VK_PRINT} VK_PRINT = 42; {$EXTERNALSYM VK_EXECUTE} VK_EXECUTE = 43; {$EXTERNALSYM VK_SNAPSHOT} VK_SNAPSHOT = 44; {$EXTERNALSYM VK_INSERT} VK_INSERT = 45; {$EXTERNALSYM VK_DELETE} VK_DELETE = 46; {$EXTERNALSYM VK_HELP} VK_HELP = 47;{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) } {$EXTERNALSYM VK_LWIN} VK_LWIN = 91; {$EXTERNALSYM VK_RWIN} VK_RWIN = 92; {$EXTERNALSYM VK_APPS} VK_APPS = 93; {$EXTERNALSYM VK_NUMPAD0} VK_NUMPAD0 = 96; {$EXTERNALSYM VK_NUMPAD1} VK_NUMPAD1 = 97; {$EXTERNALSYM VK_NUMPAD2} VK_NUMPAD2 = 98; {$EXTERNALSYM VK_NUMPAD3} VK_NUMPAD3 = 99; {$EXTERNALSYM VK_NUMPAD4} VK_NUMPAD4 = 100; {$EXTERNALSYM VK_NUMPAD5} VK_NUMPAD5 = 101; {$EXTERNALSYM VK_NUMPAD6} VK_NUMPAD6 = 102; {$EXTERNALSYM VK_NUMPAD7} VK_NUMPAD7 = 103; {$EXTERNALSYM VK_NUMPAD8} VK_NUMPAD8 = 104; {$EXTERNALSYM VK_NUMPAD9} VK_NUMPAD9 = 105; {$EXTERNALSYM VK_MULTIPLY} VK_MULTIPLY = 106; {$EXTERNALSYM VK_ADD} VK_ADD = 107; {$EXTERNALSYM VK_SEPARATOR} VK_SEPARATOR = 108; {$EXTERNALSYM VK_SUBTRACT} VK_SUBTRACT = 109; {$EXTERNALSYM VK_DECIMAL} VK_DECIMAL = 110; {$EXTERNALSYM VK_DIVIDE} VK_DIVIDE = 111; {$EXTERNALSYM VK_F1} VK_F1 = 112; {$EXTERNALSYM VK_F2} VK_F2 = 113; {$EXTERNALSYM VK_F3} VK_F3 = 114; {$EXTERNALSYM VK_F4} VK_F4 = 115; {$EXTERNALSYM VK_F5} VK_F5 = 116; {$EXTERNALSYM VK_F6} VK_F6 = 117; {$EXTERNALSYM VK_F7} VK_F7 = 118; {$EXTERNALSYM VK_F8} VK_F8 = 119; {$EXTERNALSYM VK_F9} VK_F9 = 120; {$EXTERNALSYM VK_F10} VK_F10 = 121; {$EXTERNALSYM VK_F11} VK_F11 = 122; {$EXTERNALSYM VK_F12} VK_F12 = 123; {$EXTERNALSYM VK_F13} VK_F13 = 124; {$EXTERNALSYM VK_F14} VK_F14 = 125; {$EXTERNALSYM VK_F15} VK_F15 = 126; {$EXTERNALSYM VK_F16} VK_F16 = 127; {$EXTERNALSYM VK_F17} VK_F17 = 128; {$EXTERNALSYM VK_F18} VK_F18 = 129; {$EXTERNALSYM VK_F19} VK_F19 = 130; {$EXTERNALSYM VK_F20} VK_F20 = 131; {$EXTERNALSYM VK_F21} VK_F21 = 132; {$EXTERNALSYM VK_F22} VK_F22 = 133; {$EXTERNALSYM VK_F23} VK_F23 = 134; {$EXTERNALSYM VK_F24} VK_F24 = 135; {$EXTERNALSYM VK_NUMLOCK} VK_NUMLOCK = 144; {$EXTERNALSYM VK_SCROLL} VK_SCROLL = 145;{ VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys. Used only as parameters to GetAsyncKeyState() and GetKeyState(). No other API or message will distinguish left and right keys in this way. } {$EXTERNALSYM VK_LSHIFT} VK_LSHIFT = 160; {$EXTERNALSYM VK_RSHIFT} VK_RSHIFT = 161; {$EXTERNALSYM VK_LCONTROL} VK_LCONTROL = 162; {$EXTERNALSYM VK_RCONTROL} VK_RCONTROL = 163; {$EXTERNALSYM VK_LMENU} VK_LMENU = 164; {$EXTERNALSYM VK_RMENU} VK_RMENU = 165; {$EXTERNALSYM VK_PROCESSKEY} VK_PROCESSKEY = 229; {$EXTERNALSYM VK_ATTN} VK_ATTN = 246; {$EXTERNALSYM VK_CRSEL} VK_CRSEL = 247; {$EXTERNALSYM VK_EXSEL} VK_EXSEL = 248; {$EXTERNALSYM VK_EREOF} VK_EREOF = 249; {$EXTERNALSYM VK_PLAY} VK_PLAY = 250; {$EXTERNALSYM VK_ZOOM} VK_ZOOM = 251; {$EXTERNALSYM VK_NONAME} VK_NONAME = 252; {$EXTERNALSYM VK_PA1} VK_PA1 = 253; {$EXTERNALSYM VK_OEM_CLEAR} VK_OEM_CLEAR = 254; 第一位是0的string转换成double? DBGridEh控件问题 熟的请进 请问“varInt64 = $0014”中的“$”是什么意思? Delphi 如何在office中增加自己的菜单? TreeList怎么用编程选中节点 RunTime Error 217 关于 MDI 窗体 客户区大小的问题 有没有人做过 把网页中的html代码过滤掉,只剩下关键文本 关于播放Flash问题,如何在播放时改变其大小? $$$$$$$$$$$$$$$$$$$Ctrl+鼠标的问题¥¥¥¥¥¥¥¥¥¥¥¥¥ 大问题 在退出一个循环后发现的问题 一个很急的打包程序,请各位高手指点!
left 25 37
up 26 38
down 28 40
right 27 39
showmessage(inttostr(key));
运行后你按哪个键就能显示哪个键的ASCII码procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showmessage(inttostr(key));
end;
我試過了,ascii碼值為37,38,39,40對應的字符分別是%,&,',(.
to hp0773() :
你這种方法對于一般的字符可以實現,但對于控制字符,
比如象f1,up,crtl就不行.
VK_LEFT = 37;
{$EXTERNALSYM VK_UP}
VK_UP = 38;
{$EXTERNALSYM VK_RIGHT}
VK_RIGHT = 39;
{$EXTERNALSYM VK_DOWN}
VK_DOWN = 40;
资料来源:Delphi Windows 单元文件 表格整理:http://www.netgocn.com
VK_LBUTTON = 1;
VK_RBUTTON = 2;
VK_CANCEL = 3;
VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON }
VK_BACK = 8;
VK_TAB = 9;
VK_CLEAR = 12;
VK_RETURN = 13;
VK_SHIFT = $10;
VK_CONTROL = 17;
VK_MENU = 18;
VK_PAUSE = 19;
VK_CAPITAL = 20;
VK_KANA = 21;
VK_HANGUL = 21;
VK_JUNJA = 23;
VK_FINAL = 24;
VK_HANJA = 25;
VK_KANJI = 25;
VK_CONVERT = 28;
VK_NONCONVERT = 29;
VK_ACCEPT = 30;
VK_MODECHANGE = 31;
VK_ESCAPE = 27;
VK_SPACE = $20;
VK_PRIOR = 33;
VK_NEXT = 34;
VK_END = 35;
VK_HOME = 36;
VK_LEFT = 37;
VK_UP = 38;
VK_RIGHT = 39;
VK_DOWN = 40;
VK_SELECT = 41;
VK_PRINT = 42;
VK_EXECUTE = 43;
VK_SNAPSHOT = 44;
VK_INSERT = 45;
VK_DELETE = 46;
VK_HELP = 47;
{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
VK_LWIN = 91;
VK_RWIN = 92;
VK_APPS = 93;
VK_NUMPAD0 = 96;
VK_NUMPAD1 = 97;
VK_NUMPAD2 = 98;
VK_NUMPAD3 = 99;
VK_NUMPAD4 = 100;
VK_NUMPAD5 = 101;
VK_NUMPAD6 = 102;
VK_NUMPAD7 = 103;
VK_NUMPAD8 = 104; VK_NUMPAD9 = 105;
VK_MULTIPLY = 106;
VK_ADD = 107;
VK_SEPARATOR = 108;
VK_SUBTRACT = 109;
VK_DECIMAL = 110;
VK_DIVIDE = 111;
VK_F1 = 112;
VK_F2 = 113;
VK_F3 = 114;
VK_F4 = 115;
VK_F5 = 116;
VK_F6 = 117;
VK_F7 = 118;
VK_F8 = 119;
VK_F9 = 120;
VK_F10 = 121;
VK_F11 = 122;
VK_F12 = 123;
VK_F13 = 124;
VK_F14 = 125;
VK_F15 = 126;
VK_F16 = 127;
VK_F17 = 128;
VK_F18 = 129;
VK_F19 = 130;
VK_F20 = 131;
VK_F21 = 132;
VK_F22 = 133;
VK_F23 = 134;
VK_F24 = 135;
VK_NUMLOCK = 144;
VK_SCROLL = 145;
{ VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys.
Used only as parameters to GetAsyncKeyState() and GetKeyState().
No other API or message will distinguish left and right keys in this way. }
VK_LSHIFT = 160;
VK_RSHIFT = 161;
VK_LCONTROL = 162;
VK_RCONTROL = 163;
VK_LMENU = 164;
VK_RMENU = 165;
VK_PROCESSKEY = 229;
VK_ATTN = 246;
VK_CRSEL = 247;
VK_EXSEL = 248;
VK_EREOF = 249;
VK_PLAY = 250;
VK_ZOOM = 251;
VK_NONAME = 252;
VK_PA1 = 253;
VK_OEM_CLEAR = 254;
if key=#37 then //就响应呀
要不你这样看看
chr(37),看看
VK_LBUTTON = 1;
{$EXTERNALSYM VK_RBUTTON}
VK_RBUTTON = 2;
{$EXTERNALSYM VK_CANCEL}
VK_CANCEL = 3;
{$EXTERNALSYM VK_MBUTTON}
VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON }
{$EXTERNALSYM VK_BACK}
VK_BACK = 8;
{$EXTERNALSYM VK_TAB}
VK_TAB = 9;
{$EXTERNALSYM VK_CLEAR}
VK_CLEAR = 12;
{$EXTERNALSYM VK_RETURN}
VK_RETURN = 13;
{$EXTERNALSYM VK_SHIFT}
VK_SHIFT = $10;
{$EXTERNALSYM VK_CONTROL}
VK_CONTROL = 17;
{$EXTERNALSYM VK_MENU}
VK_MENU = 18;
{$EXTERNALSYM VK_PAUSE}
VK_PAUSE = 19;
{$EXTERNALSYM VK_CAPITAL}
VK_CAPITAL = 20;
{$EXTERNALSYM VK_KANA }
VK_KANA = 21;
{$EXTERNALSYM VK_HANGUL }
VK_HANGUL = 21;
{$EXTERNALSYM VK_JUNJA }
VK_JUNJA = 23;
{$EXTERNALSYM VK_FINAL }
VK_FINAL = 24;
{$EXTERNALSYM VK_HANJA }
VK_HANJA = 25;
{$EXTERNALSYM VK_KANJI }
VK_KANJI = 25;
{$EXTERNALSYM VK_CONVERT }
VK_CONVERT = 28;
{$EXTERNALSYM VK_NONCONVERT }
VK_NONCONVERT = 29;
{$EXTERNALSYM VK_ACCEPT }
VK_ACCEPT = 30;
{$EXTERNALSYM VK_MODECHANGE }
VK_MODECHANGE = 31;
{$EXTERNALSYM VK_ESCAPE}
VK_ESCAPE = 27;
{$EXTERNALSYM VK_SPACE}
VK_SPACE = $20;
{$EXTERNALSYM VK_PRIOR}
VK_PRIOR = 33;
{$EXTERNALSYM VK_NEXT}
VK_NEXT = 34;
{$EXTERNALSYM VK_END}
VK_END = 35;
{$EXTERNALSYM VK_HOME}
VK_HOME = 36;
{$EXTERNALSYM VK_LEFT}
VK_LEFT = 37;
{$EXTERNALSYM VK_UP}
VK_UP = 38;
{$EXTERNALSYM VK_RIGHT}
VK_RIGHT = 39;
{$EXTERNALSYM VK_DOWN}
VK_DOWN = 40;
{$EXTERNALSYM VK_SELECT}
VK_SELECT = 41;
{$EXTERNALSYM VK_PRINT}
VK_PRINT = 42;
{$EXTERNALSYM VK_EXECUTE}
VK_EXECUTE = 43;
{$EXTERNALSYM VK_SNAPSHOT}
VK_SNAPSHOT = 44;
{$EXTERNALSYM VK_INSERT}
VK_INSERT = 45;
{$EXTERNALSYM VK_DELETE}
VK_DELETE = 46;
{$EXTERNALSYM VK_HELP}
VK_HELP = 47;
{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
{$EXTERNALSYM VK_LWIN}
VK_LWIN = 91;
{$EXTERNALSYM VK_RWIN}
VK_RWIN = 92;
{$EXTERNALSYM VK_APPS}
VK_APPS = 93;
{$EXTERNALSYM VK_NUMPAD0}
VK_NUMPAD0 = 96;
{$EXTERNALSYM VK_NUMPAD1}
VK_NUMPAD1 = 97;
{$EXTERNALSYM VK_NUMPAD2}
VK_NUMPAD2 = 98;
{$EXTERNALSYM VK_NUMPAD3}
VK_NUMPAD3 = 99;
{$EXTERNALSYM VK_NUMPAD4}
VK_NUMPAD4 = 100;
{$EXTERNALSYM VK_NUMPAD5}
VK_NUMPAD5 = 101;
{$EXTERNALSYM VK_NUMPAD6}
VK_NUMPAD6 = 102;
{$EXTERNALSYM VK_NUMPAD7}
VK_NUMPAD7 = 103;
{$EXTERNALSYM VK_NUMPAD8}
VK_NUMPAD8 = 104;
{$EXTERNALSYM VK_NUMPAD9}
VK_NUMPAD9 = 105;
{$EXTERNALSYM VK_MULTIPLY}
VK_MULTIPLY = 106;
{$EXTERNALSYM VK_ADD}
VK_ADD = 107;
{$EXTERNALSYM VK_SEPARATOR}
VK_SEPARATOR = 108;
{$EXTERNALSYM VK_SUBTRACT}
VK_SUBTRACT = 109;
{$EXTERNALSYM VK_DECIMAL}
VK_DECIMAL = 110;
{$EXTERNALSYM VK_DIVIDE}
VK_DIVIDE = 111;
{$EXTERNALSYM VK_F1}
VK_F1 = 112;
{$EXTERNALSYM VK_F2}
VK_F2 = 113;
{$EXTERNALSYM VK_F3}
VK_F3 = 114;
{$EXTERNALSYM VK_F4}
VK_F4 = 115;
{$EXTERNALSYM VK_F5}
VK_F5 = 116;
{$EXTERNALSYM VK_F6}
VK_F6 = 117;
{$EXTERNALSYM VK_F7}
VK_F7 = 118;
{$EXTERNALSYM VK_F8}
VK_F8 = 119;
{$EXTERNALSYM VK_F9}
VK_F9 = 120;
{$EXTERNALSYM VK_F10}
VK_F10 = 121;
{$EXTERNALSYM VK_F11}
VK_F11 = 122;
{$EXTERNALSYM VK_F12}
VK_F12 = 123;
{$EXTERNALSYM VK_F13}
VK_F13 = 124;
{$EXTERNALSYM VK_F14}
VK_F14 = 125;
{$EXTERNALSYM VK_F15}
VK_F15 = 126;
{$EXTERNALSYM VK_F16}
VK_F16 = 127;
{$EXTERNALSYM VK_F17}
VK_F17 = 128;
{$EXTERNALSYM VK_F18}
VK_F18 = 129;
{$EXTERNALSYM VK_F19}
VK_F19 = 130;
{$EXTERNALSYM VK_F20}
VK_F20 = 131;
{$EXTERNALSYM VK_F21}
VK_F21 = 132;
{$EXTERNALSYM VK_F22}
VK_F22 = 133;
{$EXTERNALSYM VK_F23}
VK_F23 = 134;
{$EXTERNALSYM VK_F24}
VK_F24 = 135;
{$EXTERNALSYM VK_NUMLOCK}
VK_NUMLOCK = 144;
{$EXTERNALSYM VK_SCROLL}
VK_SCROLL = 145;
{ VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys.
Used only as parameters to GetAsyncKeyState() and GetKeyState().
No other API or message will distinguish left and right keys in this way. }
{$EXTERNALSYM VK_LSHIFT}
VK_LSHIFT = 160;
{$EXTERNALSYM VK_RSHIFT}
VK_RSHIFT = 161;
{$EXTERNALSYM VK_LCONTROL}
VK_LCONTROL = 162;
{$EXTERNALSYM VK_RCONTROL}
VK_RCONTROL = 163;
{$EXTERNALSYM VK_LMENU}
VK_LMENU = 164;
{$EXTERNALSYM VK_RMENU}
VK_RMENU = 165;
{$EXTERNALSYM VK_PROCESSKEY}
VK_PROCESSKEY = 229;
{$EXTERNALSYM VK_ATTN}
VK_ATTN = 246;
{$EXTERNALSYM VK_CRSEL}
VK_CRSEL = 247;
{$EXTERNALSYM VK_EXSEL}
VK_EXSEL = 248;
{$EXTERNALSYM VK_EREOF}
VK_EREOF = 249;
{$EXTERNALSYM VK_PLAY}
VK_PLAY = 250;
{$EXTERNALSYM VK_ZOOM}
VK_ZOOM = 251;
{$EXTERNALSYM VK_NONAME}
VK_NONAME = 252;
{$EXTERNALSYM VK_PA1}
VK_PA1 = 253;
{$EXTERNALSYM VK_OEM_CLEAR}
VK_OEM_CLEAR = 254;