c语言10 137健值,求教如何求组合键值?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在百度搜了一下 TC+扫描码 ,有很多类似的网页

如:

如果你用的是TC2的话,就用bioskey();在bios.h这个头文件中,你可以试一下。

#include

main()

{

printf("%x",bioskey(0));

}

你就直接运行这个程序,然后敲ctrl,alt或者其它你想知道扫描码的键盘,输出的就是你要的结果。

=============

又如:

函数名:bioskey

功能:直接使用BIOS服务的键盘接口

用法:intbioskey(intcmd);

程序例:

#include

#include

#include

#defineRIGHT0x01

#defineLEFT0x02

#defineCTRL0x04

#defineALT0x08

intmain(void)

{

intkey,modifiers;

/*function1returns0untilakeyispressed*/

while(bioskey(1)==0);

/*function0returnsthekeythatiswaiting*/

key=bioskey(0);

/*usefunction2todetermineifshiftkeyswereused*/

modifiers=bioskey(2);

if(modifiers)

{

printf("[");

if(modifiers&RIGHT)printf("RIGHT");

if(modifiers&LEFT)printf("LEFT");

if(modifiers&CTRL)printf("CTRL");

if(modifiers&ALT)printf("ALT");

printf("]");

}

/*printoutthecharacterread*/

if(isalnum(key&0xFF))

printf("'%c'\n",key);

else

printf("%#02x\n",key);

return0;

}

=============================

再如:

不是的不到吧!用int bioskey(int cmd)函数他在头文件中进行了说明实际上是int16h中断,参数cmd来确定bioskey()如何操作:

0:返回按建的建值,该值是2个字节的整形数,若没有按下则一直等待,当按下时若返回低8位非0,则表示普通建,其值代表该建的ASCII码。若返回值低8位为0则高8位表示为扩展的ASCII码,即按下的是特殊功能建

1:仅用来查询是否有建按下,(非0有)

2:此时,该函数将返回一些控制建是否被按过,按过的状态由返回的低8位的各值表示

字节位 对应的16进制数 含义

0 0x01 右边的shift按下

1 0x02 左边的。。。。。

2 0x04 Ctrl 按下

3 0x08 Alt 按下

4 0x10 Scroll Lock 已打开

5 0x20 Num Lock 已打开

6 0x40 Caps Lock 已打开

7 0x80 Inset 已打开

若有:key=bioskey(2);若key值为0x09则表示右边的Shift按下同时又按下了Alt�

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值