(Linux)如何获取鼠标的初始位置或在c中没有x的情况下设置光标位置?

时间:2014-02-21 06:29:32

标签: c linux mouseevent

我将在控制台中获得鼠标位置。

但是x / y是关于运动的。所以我必须计算位置。 有一种方法可以使用X,但我在我的程序中使用了framebuffer,所以我想要如何在没有X的情况下使用。

我得到了这段代码的动作。

#include <stdio.h>
#include <fcntl.h>
#include <linux/input.h>
#include <unistd.h>
#define MOUSEDEV "/dev/input/event0"
//#pragma pack(1)

int filedesc;

int x, y;

void readm(){
    struct input_event in;
    read(filedesc, &in, sizeof(struct input_event)); /* there was data to read */
    if(in.type == 3)
    printf("Input: Time: %d.%d Type: %d Code: %d Value: %d\n", in.time.tv_sec, in.time.tv_usec, in.type, in.code, in.value);
    usleep(1000);
}

int main(){
    filedesc = open(MOUSEDEV, O_RDWR );
    while(1) readm();
    return 0;
}

2 个答案:

答案 0 :(得分:1)

除了未指定单位的相对位置外,鼠标不会告诉您任何内容。

你不需要知道。

您只需要确定起点并跟踪位置。

答案 1 :(得分:1)

根据定义,mouse给出相对运动(这是鼠标硬件的工作方式),而不是绝对位置。

使用(或至少研究)GPM软件在X外使用鼠标。