栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Linux中读取低级鼠标单击位置。

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Linux中读取低级鼠标单击位置。

您可以从X11获取初始位置,并使用相对坐标来跟踪指针:

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <linux/input.h>#include <fcntl.h>#include <X11/Xlib.h>#define MOUSEFILE "/dev/input/event6"int main(){  int fd;  struct input_event ie;  Display *dpy;  Window root, child;  int rootX, rootY, winX, winY;  unsigned int mask;  dpy = XOpenDisplay(NULL);  XQueryPointer(dpy,DefaultRootWindow(dpy),&root,&child,   &rootX,&rootY,&winX,&winY,&mask);  if((fd = open(MOUSEFILE, O_RDONLY)) == -1) {    perror("opening device");    exit(EXIT_FAILURE);  }  while(read(fd, &ie, sizeof(struct input_event))) {    if (ie.type == 2) {      if (ie.pre == 0) { rootX += ie.value; }      else if (ie.pre == 1) { rootY += ie.value; }      printf("time%ld.%06ldtx %dty %dn",          ie.time.tv_sec, ie.time.tv_usec, rootX, rootY);    } else if (ie.type == 1) {      if (ie.pre == 272 ) {         printf("Mouse button ");        if (ie.value == 0) printf("released!!n");        if (ie.value == 1) printf("pressed!!n");    } else {        printf("time %ld.%06ldttype %dtpre %dtvalue %dn", ie.time.tv_sec, ie.time.tv_usec, ie.type, ie.pre, ie.value);    }  }  return 0;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/369033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号