回 帖 发 新 帖 刷新版面

主题:如何判断按键反应?请教了!!!

如何判断使用键盘的人是否在按着某一个键?
即所谓的按键反应
例如 我一直按着a键 则得到的某个信息值为真,放掉后立即变为假.
注意:不是用inkey$函数(它做出来的动作并不圆滑,我想用此命令来控制物体的平滑移动)

回复列表 (共4个回复)

沙发

你查一下DOS中断,DOS 中断有这个功能

板凳

当我们在键盘上"按下"或"放开"一个键时,如果键盘中断是允许的(21H端口第1位=0),就会产生一个类型9的中断,并转入到BIOS的键盘中断处理程序。该处理程序从8255可编程序外围接口芯片的输入端口60H读取一个字节,这个字节的低7位是键的扫描码。最高位为0或为1,分别表示键是"按下"状态还是"放开"状态。按下时,取得的字节称为通码,放开时取得的字节称为断码。如按下Esc键时产生一个通码为01H(0000001B),放开Esc键时产生一个断码为81H(10000001B)。
你可以用INP语句来读取!格式 INP(地址)
具体的用发,和键的扫描马请看本讨论区的相关帖子 

3 楼

我有同样的问题,在斑竹qb45的帮助下解决了:
do
do: k$ = inkey$ : loop until k$ < > ""
if k$="a" then gosub yousub  '按a键转入a相应的子程序
loop

在子程序中插入:'(判断键是否按下)
do
a = inp(&H60)
a = a and 128 '最高位是128,是128表示键已放开
loop until a=128'没有键按下或键已放开 退出循环

4 楼

但愿对你有用

我来回复

您尚未登录,请登录后再回复。点此登录或注册