当前位置: 首页 > 面试题库 >

您如何从/ dev / input / mice读取鼠标按钮状态?

林博厚
2023-03-14
问题内容

您如何从/ dev / input / mice读取鼠标按钮状态?我想检测按钮是否被按下。


问题答案:

您可以打开设备并阅读。来自/ dev / input / mice的事件的长度为3个字节,需要进行一些解析。我认为现在首选的方法是改用/ dev /
input / event#。但是,这是一个使用/ dev / input / mice的小示例。

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc, char** argv)
{
    int fd, bytes;
    unsigned char data[3];

    const char *pDevice = "/dev/input/mice";

    // Open Mouse
    fd = open(pDevice, O_RDWR);
    if(fd == -1)
    {
        printf("ERROR Opening %s\n", pDevice);
        return -1;
    }

    int left, middle, right;
    signed char x, y;
    while(1)
    {
        // Read Mouse     
        bytes = read(fd, data, sizeof(data));

        if(bytes > 0)
        {
            left = data[0] & 0x1;
            right = data[0] & 0x2;
            middle = data[0] & 0x4;

            x = data[1];
            y = data[2];
            printf("x=%d, y=%d, left=%d, middle=%d, right=%d\n", x, y, left, middle, right);
        }   
    }
    return 0; 
}

鼠标单击生成以下内容:

x=0, y=0, left=1, middle=0, right=0
x=0, y=0, left=0, middle=0, right=0

和一个鼠标移动(请注意“相对”鼠标移动坐标):

x=1, y=1, left=0, middle=0, right=0


 类似资料:
  • 问题内容: 我正在使用Ubuntu 12.04。对于我的一个应用程序,我需要使用脚本在软件中控制鼠标。 我知道鼠标设备是。如果我做一个,然后移动鼠标,我看到很多输出都转储到了屏幕上。 现在,我希望删除鼠标,并有一个脚本可以控制鼠标指针 请为我提供以下命令的帮助: (1)左键单击 (2)右键单击 (3)将鼠标从一个位置移动到另一个位置。 请注意,我正在寻找Shell脚本解决方案,而不是C / C +

  • 简介 限制: 下面描述的 AutoHotkey 重映射功能通常不如直接通过 Windows 注册表进行映射那么直接有效. 对于每种方法的优点和缺点, 请参阅 注册表重映射. 重映射键盘和鼠标 内置重映射功能的语法为 OriginKey::DestinationKey。例如, 只包含下面这行内容的 脚本 会将 "a" 键重映射成 "b" 键: a::b 上面的例子没有改变 "b" 键自身的功能. "

  • 所以我有这个anchorpane,我希望为第二个鼠标键添加一个鼠标listner。我尝试了以下方法,但我一直得到一个错误,有人知道问题是什么吗? 为了记录在案,我也尝试过这样做: 绑定不匹配:MouseButton类型不能有效替代EventHandler类型的有界参数

  • 问题内容: 有没有一种方法可以检测JavaScript中的鼠标按钮当前是否处于按下状态? 我知道“ mousedown”事件,但这不是我所需要的。按下鼠标按钮后的一段时间,我希望能够检测它是否仍被按下。 这可能吗? 问题答案: 关于Pax的解决方案:如果用户有意或无意地单击了多个按钮,则该按钮将不起作用。不要问我我怎么知道:-(。 正确的代码应如下所示: 通过这样的测试: 如果您想知道按下了什么按

  • 问题内容: 我已经在单选组中动态创建了两个单选按钮,并选中其中一个。我需要在我按下另一个按钮时将其值保存在字符串中。但是我已经为此实现了,但是第一次没有用。这是我的代码。 问题答案: xml文件 Java代码

  • 我正在用MCP(Mod Coder Pack)制作我自己的Minecraft客户端。 但我不知道如何才能检测例如在更新方法中,如果鼠标按钮被按下,以及哪个。 Im使用MCP 9.10(Minecraft 1.8) 我在谷歌也在这个平台上搜索,但我什么也没找到。 我希望你们中有人能帮助我。