社区
Linux/Unix社区
帖子详情
如何判断键盘击键?
liwz123
2003-06-13 01:42:18
如题。
我知道在windows里有个_kbhit的函数来判断,但在linux下如何判断?
望高手请教。
...全文
62
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的源代码.可以实现你的需求.
web自动化-
键盘
&对话框&下拉框&显示等待&隐式等待
本课程主要讲解web自动化-
键盘
下拉框 对话框 显示等待 隐式等待,主要内容如下: 1.
键盘
操作案例 2. 下拉框操作 3. 对话框处理 4. 滚动条操作 5. 显示等待 6. 隐式等待 7. 强制...
计算机
键盘
操作指法要求,技巧:计算机
键盘
的基本指法是什么?
主
键盘
的第三行字母键中有8个键:ASDF键和JKL;键,这8个键是“基本键”。每个人都观察到F键和J键的位置,您发现它和其他字母的键位置有什么区别吗?F和J键每个都有一个凸起的点,一条小的水平线或一个圆圈,用于...
计算机主机上有几个按钮,
键盘
按键有什么功能 电脑
键盘
上各个按键功能详解...
对于
键盘
,大伙都熟悉吧,它是一种电脑运行输入...
键盘
按键有什么功能:1、Tab键:表格键。它是Table的缩写,它在文字处理软件里能起到等距离移动的作用。比如:我们在处理表格时,不要用空格键来一格一格地移动...
STM32。USB HID,如何发送标准
键盘
的按键报告?
CmdOutBuf[2]这个位置就是储存键值的位置,0x09代表的是
键盘
上F这个键,0x06代表的是
键盘
上C这个键,具体的按键对应什么键值需要去查。然后注意,HID_MOUSE_REPORT_DESC_SIZE这个宏定义也要修改,因为鼠标是74个字节...
python检测
键盘
按键事件_python对绑定事件的鼠标、按键的
判断
实例
还有个事件的type属性,这个经过测试
键盘
事件返回字符2,鼠标返回字符2,可以根据这个再进行
判断
反会的是
键盘
事件还是鼠标事件。# :鼠标左击事件# :鼠标中击事件# :鼠标右击事件# :双击事件# :三击事件from ...
Linux/Unix社区
23,115
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章