中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 14:27
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 求助关于键盘抓码的问题 查看 977 回复 2
楼 主 求助关于键盘抓码的问题 发表于 2007-03-03 07:31 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 17
发帖 7
注册 2006-09-15 05:26
19年会员
UID 62630
性别 男
状态 离线
我在网上看了这方面的建议,修改15号4FH中断较易实现。
下面是我编写程序的主体。但还是不理想,一些状态键:CTRL,ALT,PAUSE等抓不到!我已搞了好久,没一点头绪!!!请各位帮忙!!!!

int15:
pushf
push ax
push cx
push dx
push bx
push sp
push bp
push si
push di
push ds
push es

cmp ah,4fh
jnz exit_int15

push cs
pop ds
push cs
pop es
inc byte ptr flag_15
mov key_buff_15,al
scan1_15:
push ax ;显示扫描代码

shr al,1 ;先显示高4位

shr al,1

shr al,1

shr al,1

cmp al,0ah

jb scan2_15

add al,7

scan2_15: add al,30h ;转换成ASCII码

mov bx,0

mov ah,0eh

int 10h

pop ax ;后显示低四位

and al,0fh

cmp al,0ah

jb scan3_15

add al,7

scan3_15: add al,30h ;转换成ASCII码

mov ah,0eh

int 10h

mov ax,0e20h ;显示两个空格,以分隔扫描代码

int 10h

mov ax,0e20h

int 10h

exit_int15:
;;;;;;;;;;;;;LFC 07/2/5
pop es
pop ds
pop di
pop si
pop bp
pop sp
pop bx
pop dx
pop cx
pop ax
popf


DB 0EAH
OFF_15 DW ?
SEG_15 DW ?

谢谢!
2 发表于 2007-03-03 08:00 ·  中国 广东 深圳 宝安区 电信
新手上路
积分 17
发帖 7
注册 2006-09-15 05:26
19年会员
UID 62630
性别 男
状态 离线
请各位帮帮忙!真是没一点法子!
3 发表于 2007-03-17 08:54 ·  中国 浙江 杭州 电信
初级用户
★★
积分 155
发帖 74
注册 2007-02-21 07:24
19年会员
UID 79875
性别 男
状态 离线
我不懂,帮你顶上去,我觉得这个问题好
论坛跳转: