如何从用户代码移动鼠标光标?

时间:2013-12-14 08:50:24

标签: c++ linux input xorg

我的数据来自arduino(从传感器获取) 我希望用户程序处理数据(从/ dev / ttyUSB0读取后) 之后我需要使用程序的输出来控制鼠标光标 (我现在真的想避免编写内核驱动程序。)

建议的方法是什么(在Linux环境下)? 也许在X ...或者某些工具/脚本之上的库我可以直接将数据传输到?

3 个答案:

答案 0 :(得分:4)

取自dzone

#include <stdio.h>
#include <stdlib.h>

#include <X11/Xlib.h>
#include <X11/Xutil.h>

void mouseMove(int x, int y)
{
    Display *displayMain = XOpenDisplay(NULL);

    if(displayMain == NULL)
    {
        fprintf(stderr, "Errore nell'apertura del Display !!!\n");
        exit(EXIT_FAILURE);
    }

    XWarpPointer(displayMain, None, None, 0, 0, 0, 0, x, y);

    XCloseDisplay(displayMain);
}

答案 1 :(得分:1)

我知道有几个选项:

  1. xte是一个命令行工具:http://linux.die.net/man/1/xte
  2. 如果您可以使用python,xaut可能更符合您的喜好:http://xautomation.sourceforge.net/index.html

答案 2 :(得分:0)

node-x11

var x = 100; 
var y = 200;
require('x11').createClient(function(err, display) {
    display.client.WarpPointer(0, display.screen[0].root, 0, 0, 0, 0, x, y);
});