Articles of input

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

我的数据来自arduino(从传感器获取)。 我想通过用户程序处理数据(从/ dev / ttyUSB0读取数据后)。 之后,我需要使用程序的输出来控制鼠标光标。 (我现在真的很想避免编写一个内核驱动程序。) 推荐的方法是什么(在Linux环境下)? 也许一个库的顶部X …或一些工具/脚本我可以直接pipe道数据到?

无法从/ dev / input / event获取鼠标移动事件*

使用evtest工具testinginput事件时,我无法获得鼠标移动事件。 我只得到三个鼠标事件: left click event: type = EV_KEY, code = 272 (LeftBtn), value=1/0 right click event: type = EV_KEY, code = 273 (RightBtn), value = 1/0 mouse wheel event: type = EV_REL, code = 8 (Wheel), value = -1 没有鼠标移动事件 。 那么,我的鼠标移动事件,以及如何捕捉它? ps:在安装了virtualbox-addition的Ubuntu 11.04和Gentoo的VirtualBox-4上进行testing。

轻量级GNU readline替代品

我正在寻找一个GNU readline的select。 它具有很多function,但只有其中的几个对我来说是有用的,如下所述 – 我正在处理交互式命令提示符应用程序(显示提示符并接受下一个要运行的用户命令)。 我想为提示实现一些编辑和历史function。 所以当用户按UP键时,应该显示最后一个运行命令。 另外,如果需要编辑任何错字或命令开关等,用户应该能够使用箭头键进行导航。 在Windows上,类似的东西已经存在了,如果你使用fgets或者scanf在cmd提示符下input,它已经保存了历史logging,并且允许你编辑。 有没有一个很好的select在Linux上?

(ubuntu)linux中捕获第二个键盘input

我已经写了一个程序,从第二个键盘(实际上是一个条形码扫描仪)获取input。 问题是,如果另一个窗口是活动的数据input在那里,而不是在我的程序。 有人可以给我build议我做错了什么? #include <stdio.h> #include <string.h> int main(int argc, char * argv[]){ FILE * fp_in; char * data; fp_in = fopen("/dev/input/by-id/usb-04d9_1400-event-kbd","r"); if(fp_in == NULL){ fprintf(stderr,"Failed to open input by id\n"); } fp_in = fopen("/dev/input/by-path/pci-0000:00:1d.1-usb-0:2:1.0-event-kbd","r"); if(fp_in == NULL){ fprintf(stderr,"Failed to open input by path\n"); return 1; } while(1){ fscanf(fp_in,data,"%s"); fprintf(stderr,"%s",data); } return 0; } 谢谢 […]

如何从/ dev / input / mice中读出滚轮信息?

对于家庭机器人项目,我需要读出原始的鼠标移动信息。 我通过使用这个SO-answer中的python脚本部分地成功了。 它基本上读出/ dev / input / mice并将hexinput转换为整数: import struct file = open( "/dev/input/mice", "rb" ) def getMouseEvent(): buf = file.read(3) button = ord( buf[0] ) bLeft = button & 0x1 bMiddle = ( button & 0x4 ) > 0 bRight = ( button & 0x2 ) > 0 x,y = struct.unpack( "bb", buf[1:] ) […]

如何在Linux上使用input子系统来获取键盘事件

我正在用C写一个Linux程序,我需要截取某些键盘笔划。 使用input子系统(读/写/ dev /input/事件X),我可以接收键盘笔画(使用“读取”function)或模拟键盘笔画(使用“写入”function)。 当使用“读”function时,我可以捕捉用户的键盘笔画,但这个事件是传播的,我不知道如何使用它。

input_event结构描述(来自linux / input.h)

有人可以告诉我什么是由input_event结构使用的数据types的属性? 它在input.h文件中定义如下: struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; }; 但是没有其他的描述! 即使使用Google,也没有什么意思。 我唯一知道的是, time从纪元给出秒或毫秒, value给出按下button的代码。 但是value财产的value对我来说也不是很清楚。 在我的程序中,每个击键都会产生六个事件。 以下事件是按ENTER键的响应: type=4,code=4,value=458792 type=1,code=28,value=1 type=0,code=0,value=0 type=4,code=4,value=458792 type=1,code=28,value=0 type=0,code=0,value=0 那些是一封信: type=4,code=4,value=458756 type=1,code=30,value=1 type=0,code=0,value=0 atype=4,code=4,value=458756 type=1,code=30,value=0 type=0,code=0,value=0 我想解码真正的字母的价值,但我不明白的属性的含义。 请帮忙!

你怎么能拥有一个隐藏设备的所有权?

我想要拥有已经插入的隐藏设备的所有权,消耗它的输出,同时防止其他人(X11或terminal)消耗它。 如果我能帮上忙,我不想假装成为terminal,而是要垄断一个特定的隐藏或字符设备。 这个想法是,一些隐藏设备可能被x /terminal识别为鼠标/键盘,但第二个鼠标或键盘可以用于其他的东西,但要做到这一点,你需要确保他们不发送虚假input到开放的terminal。 有没有人有任何见解,如何做到这一点?

从Shellinput中检测元(特殊)键(Ctrl,Shift,Alt,Tab,Esc,Backspace)

我想知道是否有人知道如何从Shellinput中检测元(特殊)键( Ctrl , Shift , Alt , Tab , Esc , Backspace )。 我见过的post解释了如何检测箭头键等,但不是上述的特殊键。 有什么办法可以做$ showkey -s并使用原始的扫描代码以某种方式获得关键input? 任何forms的帮助将不胜感激!

linux的input:简单的例子?

使用uinput工作时遇到了一些问题,使代码的双方都陷入了 uinput 。 基于uinput入门:用户级input子系统我把下面的编写器 (减去error handling)放在一起: int main(int ac, char **av) { int fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK); int ret = ioctl(fd, UI_SET_EVBIT, EV_ABS); ret = ioctl(fd, UI_SET_ABSBIT, ABS_X); struct uinput_user_dev uidev = {0}; snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, "uinput-rotary"); uidev.absmin[ABS_X] = 0; uidev.absmax[ABS_X] = 255; ret = write(fd, &uidev, sizeof(uidev)); ret = ioctl(fd, UI_DEV_CREATE); struct input_event […]