中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 为什么 bioskey()对SHIFT等几个功能键无效?
作者:
标题: 为什么 bioskey()对SHIFT等几个功能键无效? 上一主题 | 下一主题
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『楼 主』:  为什么 bioskey()对SHIFT等几个功能键无效?

代码如下: (对其他键都有效,但按下SHIFT等键程序无反应!) 怎么回事? 用中断函数也这样.是不是 CONFIG.SYS中要什么配置? #include <stdio.h> #include <bios.h> #include <ctype.h> main() { int key1=0,key2=0; while(!bioskey(1)); key1=bioskey(0); key2=bioskey(2); printf("%X,%X\n",key1,key2); } [ Last edited by GOTOmsdos on 2007-3-3 at 11:46 AM ]


2007-3-3 11:05
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
firstsail
高级用户





积分 668
发帖 295
注册 2005-7-26
来自 广东深圳
状态 离线
『第 2 楼』:  

//不能用bioskey()读到,可从bois数据区中获得! //WinSail V2.0有一个函数AfxKeyboardState,其代码是这样的 #define KEYBOARD_STATE_RSHIFT 0 #define KEYBOARD_STATE_LSHIFT 1 #define KEYBOARD_STATE_CTRL 2 #define KEYBOARD_STATE_ALT 3 #define KEYBOARD_STATE_SCROLLLOCK 4 #define KEYBOARD_STATE_NUMLOCK 5 #define KEYBOARD_STATE_CAPSLOCK 6 #define KEYBOARD_STATE_INSERT 7 //函数名称:AfxKeyboardState //函数功能: //入口参数:int nState --- 要判断的按键 = KEYBOARD_STATE_RSHIFT 右"Shift"键 = KEYBOARD_STATE_LSHIFT 左"Shift"键 = KEYBOARD_STATE_CTRL "Ctrl"键 = KEYBOARD_STATE_ALT "Alt"键 = KEYBOARD_STATE_SCROLLLOCK "ScrollLock键" = KEYBOARD_STATE_NUMLOCK "NumLock键" = KEYBOARD_STATE_CAPSLOCK "CapsLock键" = KEYBOARD_STATE_INSERT "Insert键" //出口参数:无 //返 回 值:与按键匹配时返回TRUE,否则返回FALSE BOOL far AfxKeyboardState(int nState) { BYTE far *pHead = (BYTE far *)0x00400017L; return (((*pHead) & (1 << nState)) ? TRUE : FALSE); } //举例 int main() { //只要按下"Shift",则退出 while (!AfxKeyboardState (KEYBOARD_STATE_LSHIFT) && !AfxKeyboardState (KEYBOARD_STATE_RSHIFT)) { } return (0); } [ Last edited by firstsail on 2007-3-4 at 12:41 AM ]


2007-3-4 00:38
查看资料  访问主页  发短消息  网志   编辑帖子  回复  引用回复
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『第 3 楼』:  

可惜你这个不能在 TC/BC里用的...


2007-3-4 15:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: