注入输入按键

时间:2013-05-29 13:36:15

标签: python

我在Raspberry Pi上运行Arch Linux ARM。在启动时,启动X应用程序(navit)。

系统启动后,我将其插入其中,并尝试以下python代码:

from evdev import UInput, ecodes
inp = UInput()
inp.write(ecodes.EV_KEY, ecodes.KEY_UP, 1)
inp.write(ecode.EV_KEY, ecodes.KEY_UP, 0)
inp.syn()

问题 - 在启动时启动的应用程序没有收到此按键。

以下可以在ssh会话中运行 - 应用程序接收向上箭头按键。

  

DISPLAY =:0 xdotool key Up

uinput内核模块已加载,Xorg配置保留默认值(应该启用热插拔设备 - 尽管我无法验证它。)

dmesg显示输入设备已注册:

  

[28.725976]输入:py-evdev-uinput as / devices / virtual / input / input0

我也通过使用:

验证我开始的应用程序目前是关注的
  

DISPLAY =:0 xdotool getwindowfocus getwindowpid

接下来要调试此问题的任何想法?

1 个答案:

答案 0 :(得分:-1)

原来没有加载evdev模块。我虽然加载uinput模块应该足够了,但事实并非如此。

我发现它是通过注意插入外部键盘时代码确实有效。