当前位置: 技术问答>linux和unix
请问linux中如何快速获得鼠标数据(主要是鼠标位置坐标)
来源: 互联网 发布时间:2016-01-10
本文导语: 现在只找到一种方法,就是读/dev/input/mouse文件,但是发现速度巨慢,而且鼠标偏移大于100的时候字节就会溢出 不知道各位都是通过什么方法获取的 系统:debian ,最好不要启动图形界面,实在不行才考虑。。。 希...
现在只找到一种方法,就是读/dev/input/mouse文件,但是发现速度巨慢,而且鼠标偏移大于100的时候字节就会溢出
不知道各位都是通过什么方法获取的
系统:debian ,最好不要启动图形界面,实在不行才考虑。。。
希望详细点,本人linux接触不多
不知道各位都是通过什么方法获取的
系统:debian ,最好不要启动图形界面,实在不行才考虑。。。
希望详细点,本人linux接触不多
|
可以用gpm库,给你一个例子,编译方法:
gcc -o test test.c -lgpm
如果没找到gpm.h,你可能需要安装gpm-devel的rpm包,在光盘上找找。
运行测试程序你需要启动console的鼠标服务:
/etc/init.d/gpm start
#include
#include
int my_handler(Gpm_Event *event, void *data)
{ printf("Event Type : %d at x=%d y=%dn", event->type, event->x, event->y);
return 0;
}
int main()
{ Gpm_Connect conn;
int c;
conn.eventMask = ~0; /* Want to know about all the events */
conn.defaultMask = 0; /* don't handle anything by default */
conn.minMod = 0; /* want everything */
conn.maxMod = ~0; /* all modifiers included */
if(Gpm_Open(&conn, 0) == -1)
printf("Cannot connect to mouse servern");
gpm_handler = my_handler;
while((c = Gpm_Getc(stdin)) != EOF)
printf("%c", c);
Gpm_Close();
return 0;
}
gcc -o test test.c -lgpm
如果没找到gpm.h,你可能需要安装gpm-devel的rpm包,在光盘上找找。
运行测试程序你需要启动console的鼠标服务:
/etc/init.d/gpm start
#include
#include
int my_handler(Gpm_Event *event, void *data)
{ printf("Event Type : %d at x=%d y=%dn", event->type, event->x, event->y);
return 0;
}
int main()
{ Gpm_Connect conn;
int c;
conn.eventMask = ~0; /* Want to know about all the events */
conn.defaultMask = 0; /* don't handle anything by default */
conn.minMod = 0; /* want everything */
conn.maxMod = ~0; /* all modifiers included */
if(Gpm_Open(&conn, 0) == -1)
printf("Cannot connect to mouse servern");
gpm_handler = my_handler;
while((c = Gpm_Getc(stdin)) != EOF)
printf("%c", c);
Gpm_Close();
return 0;
}