evdev无法模拟触摸inpu

2024-09-30 22:15:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用evdev来模拟触摸输入。在

from evdev import UInput, AbsInfo, ecodes as e

cap = {
    e.EV_KEY : [e.KEY_A, e.KEY_B],
    e.EV_ABS : [
        (e.ABS_X, AbsInfo(value=0, min=0, max=255,
                          fuzz=0, flat=0, resolution=0)),
        (e.ABS_Y, AbsInfo(0, 0, 255, 0, 0, 0)),
        (e.ABS_MT_POSITION_X, (0, 255, 128, 0)) ]
}

ui = UInput(cap, name='example-device', version=0x3)

将我自己添加到input组,错误是:

^{pr2}$

{cd2>运行错误后^更改:

Traceback (most recent call last):
  File "mouse.py", line 12, in <module>
    ui = UInput(cap, name='example-device', version=0x3)
  File "/home/user/.virtualenvs/venv/lib/python3.6/site-packages/evdev/uinput.py", line 147, in __init__
    _uinput.create(self.fd, name, vendor, product, version, bustype, absinfo)
SystemError: /builddir/build/BUILD/Python-3.6.2/Objects/longobject.c:404: bad argument to internal function

正在删除(e.ABS_MT_POSITION_X, (0, 255, 128, 0))

Traceback (most recent call last):
  File "mouse.py", line 12, in <module>
    print(ui)
  File "/home/user/.virtualenvs/venv/lib/python3.6/site-packages/evdev/uinput.py", line 171, in __str__
    evtypes = [i[0] for i in self.capabilities(True).keys()]
  File "/home/user/.virtualenvs/venv/lib/python3.6/site-packages/evdev/uinput.py", line 200, in capabilities
    raise UInputError('input device not opened - cannot read capabilites')
evdev.uinput.UInputError: input device not opened - cannot read capabilites

Tags: keynameinpyuiversiondeviceline