如何获取键盘上的一些特殊按键的键码值?(200分)

  • 主题发起人 主题发起人 外来天客
  • 开始时间 开始时间

外来天客

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠.
有谁知道如何获取键盘上的一些特殊按键的键码值?
如: 一些键盘上有可以控制音量的+或-按键、 关机/重启按键, 一键启动IE..
一般笔记本上都会有一个 Fn 的键....
它们这些按键的键值如何得到?
 
调试时看看OnKeyPress或OnKeyDown等等传入的参数看看
 
这个试了.. 这两个事件都没有被击发
 
等我回家试试看
 
你下载一个叫做DelphiHleper2.0的程序下来,里边有的
 
直接调用那些消息处理的API,不要依赖D的那些标准的消息封装
 
Fn这样的键估计是由BIOS来控制的
所以系统里面不会触发他的事件
 
哪位大侠有更详尽一点的方法吗?
 
采用消息处理.
 
to 心飞雪

能说详细点吗?.
最好能给点代码参考一下 ^_^
 
VK_CTRL VK_ALT ....
 
等待高手出现...[:D]
 
同意iamy,Fn键是Bios级处理的,普通程序的得不到
 
那这些呢?
一些键盘上有可以控制音量的+或-按键、 关机/重启按键, 一键启动IE..
 
VK_LBUTTON 1 1 鼠标左键钮
VK_RBUTTON 2 2 鼠标右键钮
VK_CANCEL 3 3 Control-break执行
VK_MBUTTON 4 4 鼠标中键钮
VK_BACK 8 8 Backspace键
VK_TAB 9 9 Tab键
VK_CLEAR 0C 12 Clear键
VK_RETURN 0D 13 Enter键
VK_SHIFT 10 16 Shift键
VK_CONTROL 11 17 Ctrl键
VK_MENU 12 18 Alt键
VK_PAUSE 13 19 Pause键
VK_CAPITAL 14 20 Caps Lock键
VK_ESCAPE 1B 27 Esc键
VK_SPACE 20 32 SpaceBar键
VK_PRIOR 21 33 Page Up键
VK_NEXT 22 34 Page Down键
VK_END 23 35 End键
VK_HOME 24 36 Home键
VK_LEFT 25 37 Left Arrow键
VK_UP 26 38 Up Arrow键
VK_RIGHT 27 39 Right Arrow键
VK_DOWN 28 40 Down Arrow键
VK_SELECT 29 41 Select键
2A 42 OEM自订使用
VK_EXECUTE 2B 43 Execute键
VK_SNAPSHOT 2C 44 Print Screen键
VK_INSERT 2D 45 Ins键
VK_DELETE 2E 46 Del键
VK_HELP 2F 47 Help键
VK_0-VK_9 30-39 48-57 0键-9键
VK_A-VK_Z 41-5A 65-90 A键-Z键
VK_NUMPAD0-9 60-69 96-105 数字键0-9键
VK_MULTIPLY 6A 106 *键
VK_ADD 6B 107 +键
VK_SEPARATOR 6C 108 Separator键
VK_SUBTRACT 6D 109 -键
VK_DECIMAL 6E 110 .键
VK_DIVIDE 6F 111 /键
VK_F1-F24 70-87 112-135 F1-F24键
VK_NUMLOCK 90 144 Num Lock键
VK_SCROLL 91 145 Scroll Lock键
 
上面是虚键值
这个可以输出ASCII值,PC没那些键试不了
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage(inttostr(key));
end;
 
to: DIGUA

当按下那些特殊键时, FormKeyDown 这样的事件都不会被击发的.
 
试了有用的 如果只是F11 F12 输入 122 123 但是按FN+F11 或者FN+F12 显示 174 175 (增加音量或减小音量)
左右WIN键的虚键值分别为 VK_LWIN VK_RWIN FN就不知道了
 
后退
顶部