c语言 扫描码,一种全键盘扫描码的获取方法
在软件设计中经常需要对用户的键盘操作进行监控,这就涉及到对键盘扫描码的读取通常,键盘上每个键都对应一个两字节的扫描代码,低字节是按键的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语言 扫描码,一种全键盘扫描码的获取方法相关推荐
- oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...
使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须包含所有查询中参考到的列. 2. ...
- oracle 索引快速全扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景
使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须 ...
- oracle 索引快速全扫描,使用目录快速全扫描(Index FFS)避免全表扫描的若干场景
使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好 ...
- 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用
Meta分析是针对某一科研问题,根据明确的搜索策略.选择筛选文献标准.采用严格的评价方法,对来源不同的研究成果进行收集.合并及定量统计分析的方法,最早出现于"循证医学",现已广泛应 ...
- 一种网络用户行为日志自动获取方法
摘要 本发明公开了一种网络用户行为日志自动获取方法,其特征在于:在客户端与Web服务器之间加上一代理服务器,代理服务器第一次接受Web服务器返回的响应正文为HTML格式的用户响应即HTTP响应,在该H ...
- 4x4矩阵键盘扫描c语言程序,单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...
;4X4矩阵键盘程序.主要原理为扫描键盘矩阵时,每次只有一行电平拉低.在逐次扫描拉低的这些行的同时,去读那些列的电平. ;被拉低的行上,按下的键对应的列的电平为0 ,其它为1. 用左移位的指令,在进位 ...
- 第七章(五)—主动信息收集—端口扫描(基于TCP全连接扫描、隐蔽扫描、僵尸扫描、UDP的端口扫描)
`## 端口扫描 端口对应网络服务及应用端程序 服务端程序的漏洞通过端口攻入 发现开放的端口 更具体的攻击面 UDP端口扫描 向某一端口发送UDP数据包,如果目标ip给我一个ICMP prot-unr ...
- oracle 全表扫描 分区,oracle分区表全分区扫描问题
分区表:将一个大表根据某种规则分成多个小表,从而提高检索效率. 查询分区表sql select user_tables.table_name from user_tables where user_t ...
- oracle 索引快速全扫描,用Oracle 9i全索引扫描快速访问数据
为了实现Oracle关于增加SQL优化查询智能的承诺,Oracle9i增强了全索引SQL执行计划以支持基于功能的索引(function-based index).在Oracle 8i中,SQL优化器添 ...
最新文章
- java面试常问问题(中级及以下工程师)
- 什么是android刷机包,什么是安卓RAM?安卓RAM和安卓ROM有什么区别?
- Jupyter Notebook: 解决build docker-stacks时conda太慢的问题
- 布尔(bool)全排列
- python txt文件排序,使用Python在.txt文件中按數值(降序)排序高分列表
- 非常实用的设计类导航
- 64位浮点数_【C语言教程】C语言浮点数及其应用
- it专员职责_【IT专员工作内容|工作职责|IT专员做什么】-看准网
- 如何通过GoLand进行Debug
- 预测算法模型(灰色预测和BP神经网络)
- 怎样写好一篇高质量的技术文章?
- Linux C语言编译警告:control reaches end of non-void function
- 迅雷离线下载与高速通道运作原理详解
- “荣光医院”急救中心 73 问答
- 【学习笔记】炼数成金 Dataguru python2.x 2012
- 用labview设计jk触发器_编写数字电路JK触发器仿真程序
- yield 和 yield*
- 计算机音乐-乐理知识(1)
- TA416 APT使用新的Golang版本的PlugX恶意软件加载程序进行钓鱼攻击
- android glide流程解析,Glide 源码解析(一):简单流程分析
热门文章
- 基于javaweb的生鲜商城系统(java+jsp+bootstrap+servlet+mysql)
- 2018VR眼镜评测推荐:UGP VR眼镜和暴风魔镜哪个好?选哪种看完你就知道了!
- 2022办公企业邮箱申请流程,总结申请公司电子邮箱的步骤是什么?
- 【Dive into Deep Learning / 动手学深度学习】第二章 - 第一节:数据操作
- 下颌骨锥形束计算机断层扫描的英文缩写,山东地区人下颌后牙C形根管的锥形束CT研究...
- 杂谈:硬件和软件接口选择
- 查重时的疑惑:一个字一个字手写的论文怎么查重率就46%?
- SJTU规划上课路线
- 笔记_linux基本操作—3.10
- 软键盘输入设计(C语言)