cocos creator editbox在输入中监听ctrl键_Java 等语言是如何捕获到键盘输入的?

本文探讨了计算机如何捕获键盘输入,通过分析按键抽象、处理方式、中断机制和操作系统角色,揭示了从按下键盘到程序响应的内在流程。在Java等语言中,按键响应涉及操作系统中断、消息模型和中断向量表,同时讨论了同步中断、异步中断、可屏蔽中断和不可屏蔽中断的概念。
摘要由CSDN通过智能技术生成

    ec8f595acc69a9266190245dfbc5dc4b.png身为程序员,我们每天都会用到键盘,那么你们知道计算机是如何捕获我们从键盘输入的指令吗?

    我们想一想,当我们拿到一个问题时,需要冷静下来思考和探索解决方案。可以查资料、看视频或者咨询专家,但是在这之前,先要进行一定的思考和梳理,有的问题可以直接找到答案,有的问题却需要继续深挖寻找其背后的理论支撑。

问题 1:我们的目标是什么?

我们的目标是在 Java中实现按键响应程序。这种实现有点像 Switch-Case 语句——根据不同的按键执行不同的程序,比如按下回车键可以换行,按下左右键可以移动光标。

问题 2:按键怎么抽象?

键盘上一般不超过 100 个键。因此我们可以考虑用一个 Byte 的数据来描述用户按下了什么键。按键有两个操作,一个是按下、一个是释放,这是两个不同的操作。对于一个 8 位的字节,可以考虑用最高位的 1 来描述按下还是释放的状态,然后后面的 7 位(0~127)描述具体按了哪个键。这样我们只要确定了用户按键/释放的顺序,对我们的系统来说,就不会有歧义。

问题 3:如何处理按键?使用操作系统处理还是让每个程序自己实现?

处理按键是一个通用程序,可以考虑由操作系统先进行一部分处理,比如:

用户按下了回车键,先由操作系统进行统一的封装,再把按键的编码转换为字符串Enter方便各种程序使用。处理组合键这种操作,由操作系统先一步进行计算比较好。因为底层只知道按键、释放,组合键必须结合时间因素判断。你可以把下面这种情况看作是一个Ctrl + C组合键,这种行为可以由操作系统进行统一处理。

问题 4:程序用什么模型响应按键?

当一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值