社区
Linux/Unix社区
帖子详情
如何判断键盘击键?
liwz123
2003-06-13 01:42:18
如题。
我知道在windows里有个_kbhit的函数来判断,但在linux下如何判断?
望高手请教。
...全文
76
7
打赏
收藏
如何判断键盘击键?
如题。 我知道在windows里有个_kbhit的函数来判断,但在linux下如何判断? 望高手请教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mingjava
2003-06-14
打赏
举报
回复
好像只能捕获字母 对方向键有点无能为力,我运行了一下。
另外录入有点错误,
int readcn();//should change to int readch();
int main(void)
{
int ch = 0;
init_keyboard();
/* Looping, press q to quit */
while (ch != 'q') {
printf("Looping\n");
sleep(1);
if (kbhit()) {
ch = readcn();//should change ro ch = readch();
谁有判断方向键按下的函数 谢谢
Joran
2003-06-13
打赏
举报
回复
我给你敲进来,干脆。
#include <stdio.h>
#include <termios.h>
#include <term.h>
#include <curses.h>
#include <unistd.h>
static struct termios initial_settings;
static struct termios new_settings;
static int peek_character = -1;
void init_keyboard();
void close_keyboard();
int kbhit();
int readcn();
int main(void)
{
int ch = 0;
init_keyboard();
/* Looping, press q to quit */
while (ch != 'q') {
printf("Looping\n");
sleep(1);
if (kbhit()) {
ch = readcn();
printf("You hit %c\n", ch);
}
}
close_keyboard();
exit(0);
}
void init_keyboard()
{
tcgetattr(0, &initial_settings);
new_settings = initial_settings;
new_settings.c_lflag &= ~ICANON;
new_settings.c_lflag &= ~ECHO;
new_settings.c_lflag &= ~ISIG;
new_settings.c_cc[VMIN] = 1;
new_settings.c_cc[VTIME] = 0;
tcsetattr(0, TCSANOW, &new_settings);
}
void close_keyboard()
{
tcsetattr(0, TCSANOW, &initial_settings);
}
int kbhit()
{
char ch;
int nread;
if (peek_character != -1) {
return 1;
}
new_settings.c_cc[VMIN] = 0;
tcsetattr(0, TCSANOW, &new_settings);
nread = read(0, &ch, 1);
new_settings.c_cc[VMIN] = 1;
tcsetattr(0, TCSANOW, &new_settings);
if (nread == 1) {
peek_character = ch;
return 1;
}
return 0;
}
int readch()
{
char ch;
if (peek_character != -1) {
ch = peek_character;
peek_character = -1;
return ch;
}
read(0, &ch, 1);
return ch;
}
wwwunix
2003-06-13
打赏
举报
回复
1.先安装console-tools的源码包.用rpm
2.在/usr/src/redhat可以找到源码,用tar 解开里面的.bz的包
3.查看showkey.c
mingjava
2003-06-13
打赏
举报
回复
怎么看showkey德源代码?能不能都说的清楚点
liwz123
2003-06-13
打赏
举报
回复
to Joran(老朱)
在哪里?
具体点好吗?
多谢了!
Joran
2003-06-13
打赏
举报
回复
BLP 上有个例子
wwwunix
2003-06-13
打赏
举报
回复
建议参考showkey的源代码.可以实现你的需求.
计算机
键盘
操作指法要求,技巧:计算机
键盘
的基本指法是什么?
主
键盘
分为左右两个部分,分别由左右手指操作。十个手指在操作过程中分工明确,每个手指都尽力而为。主
键盘
的第三行字母键中有8个键:ASDF键和JKL;键,这8个键是“基本键”。每个人都观察到F键和J键的位置,您发现它和其他字母的键位置有什么区别吗?F和J键每个都有一个凸起的点,一条小的水平线或一个圆圈,用于标记基本键的位置。键入时,手指略微弯曲,左手的食指放在字母F键上,右手的手指放在J键上,其他手指...
计算机主机上有几个按钮,
键盘
按键有什么功能 电脑
键盘
上各个按键功能详解...
对于
键盘
,大伙都熟悉吧,它是一种电脑运行输入指令和数据的一种装备,上面的每一个按键都有不同的动能,只要合理使用,就能起到事半功倍的效果,那么,
键盘
按键有什么功能呢?下面我们就来详细介绍一下:
键盘
按键有什么功能以及电脑
键盘
上各个按键功能详解?
键盘
按键有什么功能:1、Tab键:表格键。它是Table的缩写,它在文字处理软件里能起到等距离移动的作用。比如:我们在处理表格时,不要用空格键来一格一格地移动...
计算机
键盘
练习,电脑
键盘
指法练习
学习目的:一、正确的指法;二、熟悉字母位置。来源:电脑入门到精通网http://www.58116.cn/学习步骤:第一步、将手指放在
键盘
上(如下图,手指放在八个基本键上,两个母指轻放在空格键上)第二步、练习
击键
(例如要打D键,方法是:1、提起左手约离
键盘
两厘米;2、向下
击键
时中指向下弹击D键,其它手指同时稍向上弹开,
击键
要能听见响声。击其它键类似打法,请多体会。形成正确的习惯很重要,而错误的习...
键盘
连击烦恼?这款免费工具让你的输入体验丝滑如新[特殊字符]️
你是否也曾遇到这样的尴尬:明明只按了一次"a"键,文档里却跳出"aaa"?游戏中关键时刻的技能释放因为
键盘
连击而失效?这些看似小问题的"
键盘
杂音",其实正在悄悄吞噬你的工作效率和游戏体验。今天要给你推荐的这款**Windows
键盘
优化工具**,正是专治各种
键盘
连击疑难杂症的开源神器,让我们一起看看它如何用智能算法终结你的输入烦恼。 ## 核心价值:让旧
键盘
焕发第二春💡 想象一下,你的机械
键盘
STM32。USB HID,如何发送标准
键盘
的按键报告?
CmdOutBuf[2]这个位置就是储存键值的位置,0x09代表的是
键盘
上F这个键,0x06代表的是
键盘
上C这个键,具体的按键对应什么键值需要去查。然后注意,HID_MOUSE_REPORT_DESC_SIZE这个宏定义也要修改,因为鼠标是74个字节的数组,而标准
键盘
是63的字节的数组,那么就需要修改usbd_hid.c里的HID_MOUSE_ReportDesc这部分的数据,他默认是鼠标的,我们给他修改成
键盘
的。这些是他们规定好的一些数据,我们选择标准
键盘
的数据(不要选鼠标的),keybrd.hid。
Linux/Unix社区
23,220
社区成员
74,543
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章