linux – 如何从/ dev / input / mice中读取鼠标按钮状态?
发布时间:2020-12-14 01:14:30 所属栏目:Linux 来源:网络整理
导读:你如何从/ dev / input / mice中读取鼠标按钮状态?我想检测按钮是否被按下. 解决方法 您可以打开设备并从中读取. / dev / input / mice中的事件长度为3个字节,需要进行一些解析.我认为现在首选的方法是使用/ dev / input / event#.但是,这是一个使用/ dev /
你如何从/ dev / input / mice中读取鼠标按钮状态?我想检测按钮是否被按下.
解决方法
您可以打开设备并从中读取. / dev / input / mice中的事件长度为3个字节,需要进行一些解析.我认为现在首选的方法是使用/ dev / input / event#.但是,这是一个使用/ dev / input / mice的小例子.
#include <stdio.h> #include <unistd.h> #include <fcntl.h> int main(int argc,char** argv) { int fd,bytes; unsigned char data[3]; const char *pDevice = "/dev/input/mice"; // Open Mouse fd = open(pDevice,O_RDWR); if(fd == -1) { printf("ERROR Opening %sn",pDevice); return -1; } int left,middle,right; signed char x,y; while(1) { // Read Mouse bytes = read(fd,data,sizeof(data)); if(bytes > 0) { left = data[0] & 0x1; right = data[0] & 0x2; middle = data[0] & 0x4; x = data[1]; y = data[2]; printf("x=%d,y=%d,left=%d,middle=%d,right=%dn",x,y,left,right); } } return 0; } 单击鼠标即可生成: x=0,y=0,left=1,middle=0,right=0 x=0,left=0,right=0 并且一个鼠标移动(注意“相对”鼠标移动坐标): x=1,y=1,right=0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |