C语言控制台界面阅读键盘操作(如何用C语言阅读键盘)
本文讲的是如何在C语言控制台界面中读取键盘,以及如何读取C语言中键盘对应的知识点。希望对你有帮助,别忘了收藏这个网站。
这篇文章的列表: 1、C语言键盘内容阅读 2.C语言如何读取键盘快捷键? 3.用C语言直接读取键盘操作的C函数。 c语言键盘内容阅读 纵观TC提供的键盘输入功能,bioskey功能是最合适的选择。
int bios key(int cmd);
使用bios中断0x16执行各种键盘操作。参数cmd决定实际操作。
bioskey的返回值由cmd决定:
0:低8位不为0,返回队列中等待的下一个键的ascii字符或键盘下一个键输入的ascii字符。低8位为0,高8位为扩展键盘代码。
1:测试是否有可读的输入键。如果是0,则不是。Ctrl_break返回0xffff(-1)。否则,返回下一个回车键。当cmd=0时,键值也会被保存,供下一个bioskey调用返回。
2:请求当前换档键状态。状态值通过以下值的AND (or)获得:
位7 0x80插入开启
6个0x40瓶盖
5 0x20数字锁定开启
4 0x10滚动锁定打开
3 0x08 ALT
2 0x04 CTRL
1 0x02 -移位
0 0x01 -移位
为了方便起见,我们先定义一些常用功能键的键值。
#定义ReturnKey 0x0d
#定义ESC 0x1b
#定义回0x08
#定义左箭头0x4b00
#定义右箭头0x4d00
#定义向上箭头0x4800
#定义向下箭头0x5000
#定义PageUp 0x4900
#定义PageDown 0x5100
#定义主页0x4700
#定义结束0x4f00
#定义F1 0x3b00
#定义F2 0x3c00
#定义F3 0x3d00
#定义F4 0x3e00
#定义F5 0x3f00
#定义F6 0x4000
#定义F7 0x4100
#定义F8 0x4200
#定义F9 0x4300
#定义F10 0x4400
int GetKey(void)
{
int tKey
while(bioskey(1)==0)
;
tKey = bios key(0);
if ((tKey 0xff)!=0)
tKey = tKey 0xff
返回tKey
}
以上代码基本可以完成常用程序的键盘读取操作。
但是一定要注意,在函数GetKey的定义中,我们只处理了使用bioskey函数时cmd=0,1的情况,而没有处理cmd=2的情况,也就是shift键状态,所以ctrl-home之类的GetKey是无法相应接收的。如果有必要,我们必须继续扩展getkey功能。
C语言如何读取键盘快捷键? 命令行输入对许多组合键没有响应。
所以要想读取快捷键,就得从系统层面读取。
不使用库函数
可以在Windows下使用Key hook。
在linux下可以读取输入事件。
用c语言直接读取键盘操作的c函数 getch();
等待用户输入没有回音的字符。
所谓没有回音,就是你输入一个w,但是不会显示在控制台上...但肯定是压着的。
他的返回值是按下的字符。
如果是Win32编程,需要捕捉WM_CHAR消息,然后根据wParam参数的值判断按下的字符!
希望对你有帮助~
C语言控制台界面键盘读取操作介绍及C语言如何读取键盘到此结束。我想知道你是否找到了你需要的信息?如果你想了解更多这方面的内容,记得关注这个网站。
最后更新于 2023-10-06 17:45:33 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章
- C语言结构改变学号(C语言如何表达学号)
- C语言输入的两个数的乘积(C语言写的两个数的乘积)
- C语言中的字符可以判断相等吗(C语言中如何判断字符串是否相等)
- C语言中的多次输入(如何在C语言中多次输入)
- C语言程序设计链表的信息管理(C语言数据结构链表的基本操作)