linux 模拟鼠标事件 qt
2011-08-11 11:36
477 查看
模拟鼠标移动:
1."/dev/input/event2"为USB鼠标对应的事件设备文件,可以通过cat /proc/bus/input/devices查看;
2."/dev/input/mice"和"/dev/input/event2"的区别,mice是所有鼠标的集合,即所有鼠标的事件都会被发送到这个设备文件中,
而event2仅仅是某个鼠标的事件,向event2和mice写数据是不一样的,数据格式会被转换。所以只能通过event模拟鼠标事件;
void simulate_mouse(int x,int y)
{
int fd;
int rel_x,rel_y;
static struct input_event event,ev;
fd = open("/dev/input/event2",O_RDWR);
if(fd<0){
debug_error("open mouse fails: fd=%d,errno=%d,%s\n",fd,errno,(char*)strerror(errno));
goto error;
}
rel_x = x;
rel_y = y;
event.type = EV_REL;
event.code = REL_X;
event.value = rel_x;
gettimeofday(&event.time,0);
if( write(fd,&event,sizeof(event))!=sizeof(event)){
debug_error("write rel_x fails: errno=%d,%s\n",errno,(char*)strerror(errno));
}
event.code = REL_Y;
event.value = rel_y;
gettimeofday(&event.time,0);
if( write(fd,&event,sizeof(event))!=sizeof(event)){
debug_error("write rel_y fails: errno=%d,%s\n",errno,(char*)strerror(errno));
}
/*clear*/
write(fd,&ev,sizeof(ev));
error:
if(fd>=0){
close(fd);
fd = -1;
}
}
1."/dev/input/event2"为USB鼠标对应的事件设备文件,可以通过cat /proc/bus/input/devices查看;
2."/dev/input/mice"和"/dev/input/event2"的区别,mice是所有鼠标的集合,即所有鼠标的事件都会被发送到这个设备文件中,
而event2仅仅是某个鼠标的事件,向event2和mice写数据是不一样的,数据格式会被转换。所以只能通过event模拟鼠标事件;
void simulate_mouse(int x,int y)
{
int fd;
int rel_x,rel_y;
static struct input_event event,ev;
fd = open("/dev/input/event2",O_RDWR);
if(fd<0){
debug_error("open mouse fails: fd=%d,errno=%d,%s\n",fd,errno,(char*)strerror(errno));
goto error;
}
rel_x = x;
rel_y = y;
event.type = EV_REL;
event.code = REL_X;
event.value = rel_x;
gettimeofday(&event.time,0);
if( write(fd,&event,sizeof(event))!=sizeof(event)){
debug_error("write rel_x fails: errno=%d,%s\n",errno,(char*)strerror(errno));
}
event.code = REL_Y;
event.value = rel_y;
gettimeofday(&event.time,0);
if( write(fd,&event,sizeof(event))!=sizeof(event)){
debug_error("write rel_y fails: errno=%d,%s\n",errno,(char*)strerror(errno));
}
/*clear*/
write(fd,&ev,sizeof(ev));
error:
if(fd>=0){
close(fd);
fd = -1;
}
}
相关文章推荐
- Qt模拟鼠标按键事件
- QT中模拟鼠标点击事件
- QT 模拟鼠标事件
- QT 模拟鼠标事件
- Linux 模拟 鼠标 键盘 事件
- QT 模拟鼠标事件
- Qt使用Windows Api模拟鼠标单击双击滚轮事件
- Qt for Mac模拟鼠标以及键盘事件
- Linux模拟鼠标和键盘事件的方法
- QT平台上模拟鼠标事件案例
- android 模拟鼠标/按键事件
- C#模拟键盘鼠标事件
- QT-鼠标单击事件
- 【Linux开发】【Qt开发】QT 同时支持鼠标和触摸屏
- C#中实现模拟鼠标事件
- Android自动化测试初探(四): 模拟键盘鼠标事件(Socket+Instrumentation实现)
- JavaScript模拟鼠标事件
- Qt如何向系统发送键盘和鼠标事件?
- C#模拟键盘鼠标事件 SendKeys 的特殊键代码表
- 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制