#include <QCoreApplication>
/*
本代码是由linux系统捕获w,a,s,d键盘抬起放下
的c++代码由于本人是初学者,里面注释可能误
导大家对学术的认知不要见怪,这些api我也找了
一晚才写出来---------最后如果大家打不开的
话换要打开的文件把event1到event4都试以下
在此希望能帮助大家爱------作者:拼命三郎
*/
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<linux/input.h>
#include<cstdio>
#include<iostream>
class JP //声明一个键盘类
{
public:
void jcdqhax(int *df,struct input_event *mn); //实现参成员法
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
struct input_event mm; //定义一个读取按键的结构体
int fd;
if((fd=open("/dev/input/event1",O_RDONLY))==-1) //打开按键文件
{
perror("open error");
return -1;
}
JP tkcjp;//创建对象
tkcjp.jcdqhax(&fd,&mm); //创建一个键盘对象
return a.exec();
}
//检测输入抬起还是按下是生马等等
void JP::jcdqhax(int *df,struct input_event *mn) {
int fd=*df;
struct input_event mykey=*mn;
while(1)
{
read(fd,&mykey,sizeof(mykey));
if(mykey.type==EV_KEY)
{
printf("type:%#x,code:%d,value:%#x\n",mykey.type,mykey.code,mykey.value);
switch(mykey.code)
{
case 50:
if(mykey.value==1)
{
std::cout<<"[M]键按下了"<<std::endl;
}
if(mykey.value==0)
{
printf("[M]按键台起了\n");
}
if(mykey.value==2)
{
printf("[M]按键一直按下\n");
}
break;
case 38:
if(mykey.value==1)
{
std::cout<<"[L]键按下了"<<std::endl;
}
if(mykey.value==0)
{
printf("[L]按键台起了\n");
}
if(mykey.value==2)
{
printf("[L]按键一直按下\n");
}
break;
case 17:
if(mykey.value==1)
{
std::cout<<"w键按下了"<<std::endl;
}
if(mykey.value==0)
{
printf("w按键台起了\n");
}
if(mykey.value==2)
{
printf("w按键一直按下\n");
}
break;
case 30:
if(mykey.value==1)
{
//switch(mykey.code)
printf("a按键按下了\n");
}
if(mykey.value==0)
{
printf("a按键台起了\n");
}
if(mykey.value==2)
{
printf("a按键一直按下\n");
}
break;
case 31:
if(mykey.value==1)
{
printf("s按键按下了\n");
}
if(mykey.value==0)
{
printf("s按键台起了\n");
}
if(mykey.value==2)
{
std::cout<<"s键一直按下"<<std::endl;
}
break;
case 32:
if(mykey.value==1)
{
printf("d按键按下了\n");
}
if(mykey.value==0)
{
printf("d按键台起了\n");
}
if(mykey.value==2)
{
printf("d按键一直按下\n");
}
break;
}
}
}
}

hymaliang1120
- 粉丝: 1
最新资源
- 交通网络布局及形式.ppt
- 网络采购管理办法.doc
- 电气工程及其自动化专业人才培养方案试点项目班.doc
- PMP精要(中英文对照).doc
- 综合布线系统施工规范方案.doc
- 网络教学情感交互的质量评价标准.doc
- 服饰有限公司营销网络建设项目建议书最终版.pptx
- 网络综合布线考试及试题答案.doc
- 基于单片机的火灾报警系统设计与仿真.doc
- 项目管理标准化考核说明111.doc
- 基于无线通信轮胎压力监测系统设计.doc
- 2023年计算机教师招聘试题及答案.doc
- 信息的编程加工和智能化加工.pptx
- 系统集成项目实施规范样本.doc
- 圣钰SAAS后台管理系统-当前系统只维护不升级.yubb-saas-pro商业版开发中-移动应用开发资源
- 电子商务发展情况汇报材料.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


