在软件设计中经常需要对用户的键盘操作进行监控,这就涉及到对键盘扫描码的读取通常,键盘上每个键都对应一个两字节的扫描代码,低字节是按键的ASCH码,但特殊键或扩展键的低字节是零,就必须从高字节获得其键位码。使用C函数B10SKEY()或直接读取ox6oH端口和内存地址。:。飞17H开始的换档状态虽然能读出大部分扫描码和一般的组合键,但是对于Fll、F12和一些特殊的组合键采用这种办法就无能为力了。为此,本文采用DOSINT16h中断的loh号功能读取扩展键盘,从键盘缓冲区读出并移走扫描码,从而成功地实现了全键盘扫描码的读取。程序采用C语言实现,避免了汇编语言实现的繁琐、复杂等问题。需要注意的是:使用这种方法时,方向键~牛十~和Insert,Delete,Home,End,Page1Tp,PflgeDown都采取扩展键盘的读法,即按数字小键盘来读取。源程序如下,在BorlandC十十3.1环境中调试通过。Un}On弋Int{;cha:eh盯幻少C:wh一}e(!kb卜Jt()):e,l一Reod,,ey又);;f(e.eh厂c二)return(。;.eho);eISe1ff、;.eh仁1二#ine}ude#一ne}ude(COn旧.h>#def吸neESC27旧tReadKey(vo一d);!ntGetkey(vo{d);一ntReadKey(){unlonREGSr;r.h.Oh=0x10;Int86(0x16,&I,阶);return(r.x.ox);}IntGetkey(void){一种全键盘扫描码的获取方法@杨志鹏$国防科工委指挥技术学院

@李海雁!北京9702信箱19号100101在软件设计中经常需要对用户的键盘操作进行监控,这就涉及到对键盘扫描码的读取。通常,键盘上每个键都对应一个两字节的扫描代码,低字节是按键的ASC码,但特殊键或扩展键的低字节是零,就必须从高字节获得其键位码。使用C函数BIOSKEY()或直接读取0x60H端口和内存地址0:0417H开始的换档状态虽然能读出大部分扫描码和一般的组合键,但是对于F11、F12和一些特殊的组合键采用这种办法就无能为力了。为此,本文采用DOSINT16h中断的10h号功能读取扩展键盘,从键盘缓冲区读出并移

c语言 扫描码,一种全键盘扫描码的获取方法相关推荐

  1. oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...

    使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须包含所有查询中参考到的列. 2. ...

  2. oracle 索引快速全扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景

    使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须 ...

  3. oracle 索引快速全扫描,使用目录快速全扫描(Index FFS)避免全表扫描的若干场景

    使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好 ...

  4. 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用

    Meta分析是针对某一科研问题,根据明确的搜索策略.选择筛选文献标准.采用严格的评价方法,对来源不同的研究成果进行收集.合并及定量统计分析的方法,最早出现于"循证医学",现已广泛应 ...

  5. 一种网络用户行为日志自动获取方法

    摘要 本发明公开了一种网络用户行为日志自动获取方法,其特征在于:在客户端与Web服务器之间加上一代理服务器,代理服务器第一次接受Web服务器返回的响应正文为HTML格式的用户响应即HTTP响应,在该H ...

  6. 4x4矩阵键盘扫描c语言程序,单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...

    ;4X4矩阵键盘程序.主要原理为扫描键盘矩阵时,每次只有一行电平拉低.在逐次扫描拉低的这些行的同时,去读那些列的电平. ;被拉低的行上,按下的键对应的列的电平为0 ,其它为1. 用左移位的指令,在进位 ...

  7. 第七章(五)—主动信息收集—端口扫描(基于TCP全连接扫描、隐蔽扫描、僵尸扫描、UDP的端口扫描)

    `## 端口扫描 端口对应网络服务及应用端程序 服务端程序的漏洞通过端口攻入 发现开放的端口 更具体的攻击面 UDP端口扫描 向某一端口发送UDP数据包,如果目标ip给我一个ICMP prot-unr ...

  8. oracle 全表扫描 分区,oracle分区表全分区扫描问题

    分区表:将一个大表根据某种规则分成多个小表,从而提高检索效率. 查询分区表sql select user_tables.table_name from user_tables where user_t ...

  9. oracle 索引快速全扫描,用Oracle 9i全索引扫描快速访问数据

    为了实现Oracle关于增加SQL优化查询智能的承诺,Oracle9i增强了全索引SQL执行计划以支持基于功能的索引(function-based index).在Oracle 8i中,SQL优化器添 ...

最新文章

  1. java面试常问问题(中级及以下工程师)
  2. 什么是android刷机包,什么是安卓RAM?安卓RAM和安卓ROM有什么区别?
  3. Jupyter Notebook: 解决build docker-stacks时conda太慢的问题
  4. 布尔(bool)全排列
  5. python txt文件排序,使用Python在.txt文件中按數值(降序)排序高分列表
  6. 非常实用的设计类导航
  7. 64位浮点数_【C语言教程】C语言浮点数及其应用
  8. it专员职责_【IT专员工作内容|工作职责|IT专员做什么】-看准网
  9. 如何通过GoLand进行Debug
  10. 预测算法模型(灰色预测和BP神经网络)
  11. 怎样写好一篇高质量的技术文章?
  12. Linux C语言编译警告:control reaches end of non-void function
  13. 迅雷离线下载与高速通道运作原理详解
  14. “荣光医院”急救中心 73 问答
  15. 【学习笔记】炼数成金 Dataguru python2.x 2012
  16. 用labview设计jk触发器_编写数字电路JK触发器仿真程序
  17. yield 和 yield*
  18. 计算机音乐-乐理知识(1)
  19. TA416 APT使用新的Golang版本的PlugX恶意软件加载程序进行钓鱼攻击
  20. android glide流程解析,Glide 源码解析(一):简单流程分析

热门文章

  1. 基于javaweb的生鲜商城系统(java+jsp+bootstrap+servlet+mysql)
  2. 2018VR眼镜评测推荐:UGP VR眼镜和暴风魔镜哪个好?选哪种看完你就知道了!
  3. 2022办公企业邮箱申请流程,总结申请公司电子邮箱的步骤是什么?
  4. 【Dive into Deep Learning / 动手学深度学习】第二章 - 第一节:数据操作
  5. 下颌骨锥形束计算机断层扫描的英文缩写,山东地区人下颌后牙C形根管的锥形束CT研究...
  6. 杂谈:硬件和软件接口选择
  7. 查重时的疑惑:一个字一个字手写的论文怎么查重率就46%?
  8. SJTU规划上课路线
  9. 笔记_linux基本操作—3.10
  10. 软键盘输入设计(C语言)