'当用户按下某个键时,
' 1.键盘会检测到这个动作,并通过键盘控制器把扫描码(scan code)传送到计算机;
'       键盘扫描码跟具体的硬件有关的,不同厂商对同一个键的扫描码有可能不同。
' 2.计算机接收到扫描码后,将其交给键盘驱动程序;
' 3.键盘驱动程序把这个扫描码转换为键盘虚拟码;
'       虚拟码与具体硬件无关,不同厂商的键盘,同一个键的虚拟码总是相同的。
' 3.然后,键盘驱动程序把该键盘操作的扫描码和虚拟码以及其它信息传递给操作系统;
' 4.操作系统将获得的信息封装在一个键盘消息中,并把该键盘消息插入到消息列队。
' 5.通过Windows的消息系统,该键盘消息被送到某个窗口中;
' 6.窗口所在的应用程序接收到消息后,可以了解到有关键盘操作的信息,然后决定作出一定的响应

'键盘消息:WM_KEYDOWN
'               nVirtKey = (int) wParam;    // 虚拟码
'               lKeyData = lParam;          // 键盘操作的相关信息

'键盘消息WM_KEYDOWN的第二个参数lParam比较复杂
'   其作用是指定重复次数、扫描码、扩展键标记、上下文环境码、前键状态标记、转换状态标记等
'   lParam: 总长4字节,32位
'0–15位:用于指定当前消息的重复次数。当用户按下某个键持续一段时间的话,
'       该值是自动计数的按下某键的次数;若按键时间很长,则会发出多个消息,
'       且重复次数不会累计
'16–23:指定扫描码
'24:指定是否该键是一个扩展键(如alt、ctrl),若值为1表示是扩展键,否则其值为0
'25–28:保留
'29:指定上下文环境码。对于WM_KEYDOWN、WM_KEYUP消息,其值总为0,
'        对WM_CHAR消息,如果同时alt键被按下,则值为1,否则值为0.
'30:指定前键状态。如果消息发送前该键是按下状态,其值为1,否则为0
'31:指定转换状态,对于WM_KEYDOWN,其值总为0;

'       对于WM_CHAR,如果该键被释放,则其值为1,否则为0.

常见Windows键盘按键虚拟码

键盘常用ASCII码
ESC键 VK_ESCAPE (27)
回车键: VK_RETURN (13)
TAB键: VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键: VK_SHIFT ()
Ctrl键: VK_CONTROL (17)
Alt键: VK_MENU (18)
空格键: VK_SPACE (/32)
退格键: VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键: VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键: VK_INSERT (45)
Home键: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键: VK_END (35)
Delete键: VK_DELETE (46)
方向键(←): VK_LEFT (37)
方向键(↑): VK_UP (38)
方向键(→): VK_RIGHT (39)
方向键(↓): VK_DOWN (40)
F1键: VK_F1 (112)
F2键: VK_F2 (113)
F3键: VK_F3 (114)
F4键: VK_F4 (115)
F5键: VK_F5 (116)
F6键: VK_F6 (117)
F7键: VK_F7 (118)
F8键: VK_F8 (119)
F9键: VK_F9 (120)
F10键: VK_F10 (121)
F11键: VK_F11 (122)
F12键: VK_F12 (123)
Num Lock键: VK_NUMLOCK (144)
小键盘0: VK_NUMPAD0 (96)
小键盘1: VK_NUMPAD0 (97)
小键盘2: VK_NUMPAD0 (98)
小键盘3: VK_NUMPAD0 (99)
小键盘4: VK_NUMPAD0 (100)
小键盘5: VK_NUMPAD0 (101)
小键盘6: VK_NUMPAD0 (102)
小键盘7: VK_NUMPAD0 (103)
小键盘8: VK_NUMPAD0 (104)
小键盘9: VK_NUMPAD0 (105)
小键盘.: VK_DECIMAL (110)
小键盘*: VK_MULTIPLY (106)
小键盘+: VK_MULTIPLY (107)
小键盘-: VK_SUBTRACT (109)
小键盘/: VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)
Scroll Lock键: VK_SCROLL (145)

键盘的扫描码虚拟码概念 常见Windows键盘按键虚拟码相关推荐

  1. windows虚拟桌面_在Windows中使用虚拟桌面的最佳免费程序

    windows虚拟桌面 If you often open a lot of applications at once, a virtual desktop program can help you ...

  2. nginx虚拟主机概念和类型介绍

    nginx虚拟主机配置实战 1,虚拟主机概念和类型介绍 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服 ...

  3. 虚拟桌面最佳组合---Windows 7

    从去年开始虚拟桌面开始在国内遍地开花时,其实,用户一直在观望,像是观望楼市一样观望,都在等最好虚拟桌面产品(XenDesktop\View\Microsoft VDI),以及最优的虚拟桌面组合.其实, ...

  4. linux虚拟桌面设置不同的背景,虚拟桌面增强器为Windows 10中的每个虚拟桌面设置不同的壁纸 | MOS86...

    虚拟桌面对于Linux用户来说并不是什么新鲜事物,尽管他们通过稍微不同的名称知道它们 - 工作区.鉴于此功能对多任务用户的重要性,Microsoft于去年在Windows 10中引入了虚拟桌面的功能. ...

  5. WINDOWS键盘事件监控原理及应用 (转)

    WINDOWS键盘事件监控原理及应用 (转)[@more@]windows键盘事件监控原理及应用 赵桂华 ·逸仙时空 WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接各种 ...

  6. 键盘的扫描码Scan Code,通码Make code,断码Break Code

    http://bbs.chinaunix.net/thread-3609756-1-1.html [键盘的构造及历史] 对于键盘,如果想要表示某个按键,硬件上对应着某个点,有两种方法,一种是对于每个按 ...

  7. 键盘 BIOS 扫描码和 ASCII 码表

    ****************************************************************************** ***               Key ...

  8. showkey - 检查来自键盘的扫描码和键盘码

    览 (SYNOPSIS) showkey [ -[hVskm] | --help | --version | --scancodes | --keycodes | --keymap ] [ -t N ...

  9. 检查来自键盘的扫描码和键盘码 showkey xev

    方法一: 名称 (NAME) showkey - 检查来自键盘的扫描码和键盘码 总览 (SYNOPSIS) showkey [ -[hVskm] | --help | --version | --sc ...

最新文章

  1. 一些大佬博客里的个签
  2. ddr2和ddr3的区别
  3. 关于Java垃圾收集
  4. 为什么这么多的广告呢
  5. 小程序中的大道理之二
  6. 手机屏碎了,怎样辨别是外屏坏还是内屏坏,看完这篇文章就明白了
  7. 【实用工具系列】MathCAD入门安装及快速上手使用教程
  8. 远程接入产品极通EWEBS给客户带来的价值
  9. Word设置每页不同的页眉/修改或去掉页眉横线/页眉标题在横线上下方的设置
  10. jQuery类似QQ空间时间轴效果_事件展示时光轴js特效代码
  11. oracle中的than,range分区values less than,代表的是小于等于还是小于啊。
  12. EM78P468 义隆单片机 单键触控
  13. 云计算与大数据——云计算概述
  14. hive分区表之insert overwrite 注意事项
  15. OpenFlow Tutorial
  16. Java性能调优杀手锏JMH
  17. 自然语言处理nlp:SnowNLP自主训练情感分析模型
  18. hdfs基本操作-python接口
  19. 《实用VC编程之玩转控件》第15课:Tree树形控件
  20. 学计算机当导演吗,学计算机8年 80岁老荣民当“导演”

热门文章

  1. 成功企业的核心思维逻辑
  2. SPOJ problem 42: Adding Reversed Numbers
  3. ORACLE nvarchar2和varchar2的区别
  4. 浏览器缓存浅解--记录备复习
  5. Node.js和NoSQL开发比特币加密货币应用程序(下)
  6. 关于xib里面的NSLayoutConstraint的multiplier修改
  7. Android之解析XML
  8. shell 全局和局部变量
  9. linux kernel的中断子系统之(三):IRQ number和中断描述符【转】
  10. (转)android 在电脑上显示真机屏幕