我需要构建一个简单的应用程序,除了笔记本电脑上的内置触摸板外,还连接4个USB鼠标(仅限点按)输入。我首选的操作系统是Linux。
任何想法我怎么能够在一个应用程序中辨别出点击鼠标来自哪个?我对C编程或任何需要的东西都很开放。这是一个简单的一次性项目,所以没有什么太复杂。
答案 0 :(得分:4)
对于它的价值,我想我找到了一个问题的答案。
bobince提到xorg让我看到了/etc/X11/xorg.conf
。结果是充满了像这样的评论
# commented out by update-manager, HAL is now used
之前我听说过HAL,而不仅仅是2001。我尝试了man -k hal
并找到lshal
,其中列出了我的电脑中的133(!)个HAL设备。在我的一只老鼠的条目中,我找到了
linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-7/2-7:1.0/input/input6/event6'
原来是文件系统中的目录。从那里开始,我发现了一个回到/dev/input/mouse3
的引用。事实上,我的所有老鼠都坐在/ dev / input中!
穿着我的超级用户斗篷,我能够阅读/ dev / input / mouse3:
root@carl-ubuntu:/dev/input# od -t x1 -w6 mouse3
0000000 09 00 00 08 00 00
*
所以事实证明鼠标左键单击09 00 00 08 00 00
,一致且可重复。
结论:我可以从/ dev / input / mouseX读取鼠标点击。对这些文件完成chmod a+r
后,我甚至可以从普通用户帐户中读取它们。我需要找到一种方法来阻止4只老鼠在可能醉酒的人手中狂奔,直接与GUI直接交互,但这是另一天的问题。
答案 1 :(得分:3)
MPX是Linux下多鼠标和多点触控的地方,但是您需要使用xorg xserver 1.7来获取它的“正确”版本;这通常被视为X11R7.5的一部分,xorg-edgers只是刚出现'稳定'而尚未被发行版整合。 (即使some work没有它,但如果你是Ubuntu的话,那就是你要关注的地方。)
GTK +似乎已经{{3}}允许您检测点击了哪个鼠标(GdkEvent.gdk_event_get_device),但我不知道将其变为完整稳定版本的时间表。我也不知道Qt4到底有多远。所以总的来说情况是:如果你愿意花时间去抓取,编译和修复东西,它就有用了,但是主流Linux还不顺利。
答案 2 :(得分:2)
我不太清楚从哪里开始这个,但对我来说这听起来很像,因为它类似于多点触控工作。也许开始为linux寻找多点触控驱动程序?
此外,luvieere的第一个链接可能会有所帮助。