该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在百度搜了一下 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�