当前位置: 首页 > news >正文

键盘扫描码与虚拟码的关系

当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机。如何区别是哪一个键被按下了呢?键盘上的所有按键都有一个编码,称作键盘扫描码。当你按下一个键时,这个键的扫描码就被传给系统。扫描码是跟具体的硬件相关的,同一个键,在不同键盘上的扫描码有可能不同。键盘控制器就是将这个扫描码传给计算机,然后交给键盘驱动程序。键盘驱动程序会完成相关的工作,并把这个扫描码转换为键盘虚拟码(驱动是driver(司机),乘客不直接操作车,只要把命令告诉司机,司机执行响应的操作就可以了。车辆状况不直接告诉乘客,只需要显示给司机,司机告诉乘客就可以了,这是就是驱动的真实用途)什么是虚拟码呢?因为扫描码与硬件相关,不具有通用性,为了统一键盘上所有键的编码,于是就提出了虚拟码概念。无论什么键盘,同一个按键的虚拟码总是相同的,这样程序就可以识别了。简单点说,虚拟码就是我们经常可以看到的像VK_A,VK_B这样的常数,比如键A的虚拟码是65,写成16进制就是&H41,注意,人们经常用16进制来表示虚拟码。当键盘驱动程序把扫描码转换为虚拟码后,会把这个键盘操作的扫描码和虚拟码还有其它信息一起传递给操作系统。然后操作系统则会把这些信息封装在一个消息中,并把这个键盘消息插入到消息列队。最后,要是不出意外的话,这个键盘消息最终会被送到当前的活动窗口那里,活动窗口所在的应用程序接收到这个消息后,就知道键盘上哪个键被按下,也就可以决定该作出什么响应给用户了。这个过程可以简单的如下表示:
用户按下按键-----键盘驱动程序将此事件传递给操作系统-----操作系统将键盘事件插入消息队列-----键盘消息被发送到当前活动窗口。

相关文章:

  • 事件和消息的区别
  • 虚拟键码是什么
  • sikuli
  • OCR-光学符号识别
  • HTML DOCTYPE 声明
  • 图像四种基本类型简介
  • 常见图像格式清晰度对比
  • netsh命令
  • 系统检测到在一个调用中尝试使用指针参数时的无效指针地址
  • 微软带头打了30年,这场屏幕里的大乱斗,终于要结束了
  • 使用socket函数的一些常见错误
  • 数据链路层协议(Ethernet、IEEE802.3、PPP、HDLC)
  • IP协议详解
  • TCP协议
  • 浅谈 Excel 对象模型
  • [译] React v16.8: 含有Hooks的版本
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 4. 路由到控制器 - Laravel从零开始教程
  • CentOS从零开始部署Nodejs项目
  • leetcode-27. Remove Element
  • React-flux杂记
  • redis学习笔记(三):列表、集合、有序集合
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • ucore操作系统实验笔记 - 重新理解中断
  • 安装python包到指定虚拟环境
  • 将回调地狱按在地上摩擦的Promise
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 看域名解析域名安全对SEO的影响
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 爬虫模拟登陆 SegmentFault
  • 深度解析利用ES6进行Promise封装总结
  • 思否第一天
  • 小程序开发之路(一)
  • 一道面试题引发的“血案”
  • 用jquery写贪吃蛇
  • 在Unity中实现一个简单的消息管理器
  • k8s使用glusterfs实现动态持久化存储
  • Mac 上flink的安装与启动
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #Linux(make工具和makefile文件以及makefile语法)
  • (1)bark-ml
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (20050108)又读《平凡的世界》
  • (done) 两个矩阵 “相似” 是什么意思?
  • (js)循环条件满足时终止循环
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (安卓)跳转应用市场APP详情页的方式
  • (八)Spring源码解析:Spring MVC
  • (论文阅读11/100)Fast R-CNN
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (未解决)macOS matplotlib 中文是方框
  • (译) 函数式 JS #1:简介
  • ... 是什么 ?... 有什么用处?
  • .net mvc 获取url中controller和action