首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ubuntu20.04LTS上使用python或C操作第二个(辅助)鼠标输入

在ubuntu20.04LTS上使用python或C操作第二个(辅助)鼠标输入
EN

Stack Overflow用户
提问于 2021-04-05 22:04:14
回答 1查看 172关注 0票数 0

我正在使用2只计算机鼠标(Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse, id=11MX Vertical Mouse, id=31)连接到两个不同的主机(Virtual core pointer, id=2Auxiliary pointer id=27)上,我正在开发ubuntu20.04lts,参见xinput

代码语言:javascript
复制
laptop:~/$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse    id=11   [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control id=12   [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control id=13   [slave  pointer  (2)]
⎜   ↳ ELAN9008:00 04F3:2A46                     id=17   [slave  pointer  (2)]
⎜   ↳ GDX1515:00 27C6:01F4 Mouse                id=19   [slave  pointer  (2)]
⎜   ↳ GDX1515:00 27C6:01F4 Touchpad             id=20   [slave  pointer  (2)]
⎜   ↳ GDX1515:00 27C6:01F4                      id=21   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0  id=10   [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0 System Control   id=14   [slave  keyboard (3)]
    ↳ USB2.0 HD IR UVC WebCam: USB2.0           id=15   [slave  keyboard (3)]
    ↳ USB2.0 HD IR UVC WebCam: USB2.0           id=16   [slave  keyboard (3)]
    ↳ ELAN9008:00 04F3:2A46                     id=18   [slave  keyboard (3)]
    ↳ Intel HID events                          id=22   [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                          id=23   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=24   [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control id=25   [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v9.0 Consumer Control id=26   [slave  keyboard (3)]
⎡ Auxiliary pointer                         id=27   [master pointer  (28)]
⎜   ↳ Auxiliary XTEST pointer                   id=29   [slave  pointer  (27)]
⎜   ↳ MX Vertical Mouse                         id=31   [slave  pointer  (27)]
⎣ Auxiliary keyboard                        id=28   [master keyboard (27)]
    ↳ Auxiliary XTEST keyboard                  id=30   [slave  keyboard (28)]

问题:

如何操作附加在Mx Vertical Mouse id=31 Auxiliary pointer 上的(不使用带有python**的 Virtual core pointer**),例如使用Xlib.ext.xtest.fake_inputpyautogui.moveToxaut等),或者直接使用C-API X Window System

问题:

这些Xlib-based python包中的任何一个都只控制带有附加Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse, id=11-slave的Virtual core pointer-master。这些包都通过将Virtual core pointer传递给Xlib.ext.xtest.fake_input()函数来获得初始的Xlib.display.Display(),而Xlib.ext.xtest.fake_input()函数不需要任何进一步的输入来指定应该操作哪个指针(不过,对于最后一点,...not肯定是肯定的)。我可以用Auxiliary pointer-master (例如Xlib.ext.xinput.query_device(window, xinput.AllMasterDevices).devices[1] )找到它,但是我不知道把它插在哪里。同时,使用Auxiliary pointer的源id id=31也没有帮助。

我感谢所有的建议,想法或解决方案,提前!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 14:52:26

X11/extensions/XInput2.h::XIWarpPointer移动由deviceid指定的设备指针

XIWarpPointer可用于控制由鼠标/光标附加的主指针的id (而不是鼠标的设备id )定义的鼠标游标:

代码语言:javascript
复制
#include <X11/extensions/XInput2.h>

Bool XIWarpPointer( Display *display,
int deviceid,
Window src_w,
Window dest_w,
double src_x,
double src_y,
int src_width,
int src_height,
double dest_x,
double dest_y);

下面是一个示例,如何将其集成到C中或构建一个库,然后使用例如CFFI与python进行接口

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66960365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档