日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何在Linux中讀取低級鼠標單擊位置

瀏覽:183日期:2023-07-12 10:06:48
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解決如何在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.code == 0) { rootX += ie.value; } else if (ie.code == 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.code == 272 ) { printf('Mouse button ');if (ie.value == 0) printf('released!!n');if (ie.value == 1) printf('pressed!!n'); } else {printf('time %ld.%06ldttype %dtcode %dtvalue %dn', ie.time.tv_sec, ie.time.tv_usec, ie.type, ie.code, ie.value); } } return 0;}解決方法

我正在使用此代碼從linux中的dev / input / event *讀取鼠標事件。

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <linux/input.h>#include <fcntl.h>#define MOUSEFILE '/dev/input/event4'int main(){ int fd; struct input_event ie; if((fd = open(MOUSEFILE,O_RDONLY)) == -1) {perror('opening device');exit(EXIT_FAILURE); } while(read(fd,&ie,sizeof(struct input_event))) {printf('time %ld.%06ldttype %dtcode %dtvalue %dn',ie.time.tv_sec,ie.time.tv_usec,ie.type,ie.code,ie.value);} return 0;}

它給我的結果格式:

時間1342517261.840285類型2代碼0值-1

“時間”是時間戳,它返回事件發生的時間。

“代碼”是事件代碼,例如REL_X或KEY_BACKSPACE,完整列表位于include / linux / input.h中。

“價值”是事件帶來的價值。EV_REL的相對更改,EV_ABS(操縱桿…)的絕對新值,或EV_KEY的釋放為0,按鍵為1以及自動重復為2。

當我單擊時,我得到了事件,但沒有在屏幕上獲得鼠標的位置,如何在屏幕上獲得鼠標的位置。

編輯1:所以事實證明我必須使用相對坐標來獲取鼠標坐標。我相信這是一個普遍的要求,因此可能會有庫/預先存在的代碼可用于獲取坐標。關于該主題的任何信息將非常有用。

Edit2:解決方案

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <linux/input.h>#include <fcntl.h>#include <X11/Xlib.h>#define MOUSEFILE '/dev/input/event4'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,sizeof(struct input_event))) { if (ie.type == 2) { if (ie.code == 0) { XQueryPointer(dpy,&mask); //rootX += ie.value; } else if (ie.code == 1) { XQueryPointer(dpy,&mask); // rootY += ie.value; } printf('time%ld.%06ldtx %dty %dn',rootX,rootY); } else printf('time %ld.%06ldttype %dtcode %dtvalue %dn',ie.value); } return 0;}

XQueryPointer似乎是更方便的解決方案。謝謝@perreal的指導。

標簽: Linux系統
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久99久久人婷婷精品综合| 国产一区福利| 视频一区国产视频| 亚洲精品九九| 久久99国产精品视频| 日韩在线观看| 亚洲综合二区| 国产精品一区2区3区| 97精品97| 欧美专区一区二区三区| 欧美日韩亚洲一区在线观看| 国产精品chinese| 亚洲欧洲高清| 亚洲精品日本| 国际精品欧美精品| 国产精品视区| 麻豆精品视频在线观看免费| 国产精品7m凸凹视频分类| 亚洲综合福利| 国内精品伊人| 在线精品一区二区| 国产一区二区三区久久| aa亚洲婷婷| 国产精品九九| 好吊一区二区三区| 国产精品网站在线看| 成人小电影网站| 亚洲精品进入| 亚洲第一精品影视| 久久久久国产精品一区三寸 | 欧美日韩午夜电影网| 国产精品三p一区二区| 国产一区一一区高清不卡| 日韩毛片在线| 鲁大师影院一区二区三区| 麻豆久久一区二区| 蜜桃视频欧美| 美女尤物国产一区| 免费人成精品欧美精品| 精品国产99| 亚洲另类视频| 99精品电影| 国产精品99久久免费观看| 一本一本久久| 麻豆理论在线观看| 日本午夜免费一区二区| 欧美成人精品| 粉嫩av一区二区三区四区五区| 蜜桃av一区二区在线观看| 日本美女一区| 国产精品白丝一区二区三区| 国产精品人人爽人人做我的可爱| 91亚洲自偷观看高清| 日本在线视频一区二区| 亚洲成人精品| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲欧美久久| 久久国产精品美女| jiujiure精品视频播放| 国产精品久久久久久久久妇女| 深夜福利亚洲| 亚洲欧洲日本mm| 日本不良网站在线观看| 国产乱码精品一区二区三区四区| 五月天久久777| 91亚洲自偷观看高清| 国产精品xxx在线观看| 婷婷精品在线观看| 欧美日韩日本国产亚洲在线| 人在线成免费视频| 久久精品欧洲| 国产精品中文字幕亚洲欧美| 视频一区日韩精品| 久久成人国产| 国产视频欧美| 欧美日韩国产高清电影| 国产精品字幕| 日韩精品91| av资源亚洲| 91亚洲国产成人久久精品| 精品网站999| 久久精品系列| 精品久久中文| 成人午夜亚洲| 精品一区二区三区中文字幕 | 日韩成人三级| 精品三级在线观看视频| 欧美精品不卡| 国产精品一线| 欧美激情日韩| 精品高清久久| 日韩精品不卡一区二区| 日韩精品1区| 99免费精品| 性欧美69xoxoxoxo| 黄色av一区| 久久亚洲视频| 亚洲精品九九| 日韩精品乱码av一区二区| 日韩精品中文字幕一区二区| 日韩视频1区| 国产欧美69| 精品一区二区三区中文字幕视频 | 在线看片不卡| 亚洲激情偷拍| 中文字幕一区二区三区日韩精品| 亚洲日产av中文字幕| 日韩欧美三区| 久久国产精品美女| 日韩成人精品一区| 日韩一区二区三区免费| 欧美成人午夜| 亚洲精品婷婷| 国产精品三级| 日韩视频网站在线观看| 亚洲国产日韩欧美在线| 人人爽香蕉精品| 911亚洲精品| 精品亚洲a∨| 久久亚洲国产| 欧美日韩国产高清| 蜜臀av一区二区三区| 欧美日韩精品一区二区三区视频| 欧美亚洲tv| 日韩电影二区| 在线国产一区| 日韩有码av| 国产精品地址| 999国产精品视频| 男人的天堂亚洲一区| 欧美日本三区| 日韩国产一区二区三区| 中文精品视频| 国产日韩一区二区三区在线播放| 国产精品中文| 日韩中文在线电影| 日本大胆欧美人术艺术动态| av亚洲一区二区三区| 丝瓜av网站精品一区二区| 91欧美日韩在线| 国产第一亚洲| 亚洲精品99| 91精品日本| 日韩欧美精品| 亚洲精品在线影院| 美女国产一区| 国产精品资源| 亚洲天堂久久| 亚洲精品九九| 激情不卡一区二区三区视频在线| 国产一区观看| 欧美一区久久| 日韩激情一区| 无码日韩精品一区二区免费| 久久中文字幕一区二区三区| 亚洲精品网址| 国产精品永久| 欧美va亚洲va日韩∨a综合色| 日本在线成人| se01亚洲视频| 中文字幕一区二区三区日韩精品| 国产一区二区色噜噜| 亚洲一区二区网站| 国产欧美69| 99免费精品| 青青伊人久久| 亚洲精品小说| 麻豆精品蜜桃视频网站| 婷婷成人基地| 国产精品伦一区二区| 伊人久久大香线蕉av不卡| 欧美亚洲福利| 国产精品主播| 丝袜亚洲精品中文字幕一区| 久久精品国产福利| 另类国产ts人妖高潮视频| 久久影院一区二区三区| 最新亚洲国产| 亚洲精品国产嫩草在线观看| 久久国内精品视频| 蜜桃av.网站在线观看| 日韩av资源网| 国产高清久久| 超级白嫩亚洲国产第一| 日韩毛片一区| 欧美影院三区| 麻豆视频久久| 四虎精品永久免费| 欧美色图一区| 国产劲爆久久| 蜜桃一区二区三区在线| 精品国产网站| 日本免费在线视频不卡一不卡二| 久久视频精品| 超碰在线99| 日本综合精品一区| 国产综合婷婷| 麻豆国产在线| 欧美国产先锋| 日本午夜精品久久久|