如何在Pynput中使用鼠标侧面按钮?

时间:2018-09-30 12:05:37

标签: python macros mouse pynput

我正在使用Python模块Pynput来创建一个宏,该宏将按下我的侧面按钮之一。有人知道Pynput中的侧面按钮是什么吗? 例如:

from pynput.mouse import Button, Controller

mouse = Controller()

mouse.press(Button.SIDEBUTTON)
mouse.release(Button.SIDEBUTTON)

SIDEBUTTON部分会发生什么?

3 个答案:

答案 0 :(得分:0)

鼠标模型上的其他按钮通常 表示为“按钮6”和“按钮7”等(按钮4和5是滚动“按钮”)。一些鼠标制造商会发送键盘代码来代替(例如多媒体按钮或其他自定义代码)。

对于Windows和OS X,Pynput仅支持鼠标左键,鼠标右键,鼠标中键,因此就Pynput而言,您在那些平台上会很不走运。如果您使用的是Linux(带有X.org后端),则可以发送和接收更多的按钮,从button8一直到button31以及scroll_upscroll_downscroll_leftscroll_right

因此,根据所使用的鼠标型号和操作系统,您 可能能够获得这些按钮的正确事件,无论是鼠标按钮还是键盘事件。同时注册[mouse]和keyboard listener,并打印出鼠标单击事件的按钮值,以及键盘按下或释放事件的键,看是否可以显示侧面按钮上。

当不在Linux上时,如果特定的鼠标按钮作为键盘事件发送,那么您很幸运,可以使用键盘控制器发送相同的事件。如果不是,那么Pynput也无法发送此类鼠标按钮事件。

这并不是说您根本无法发送这样的按钮单击,但是您必须研究用于Windows或OSX的控制器的源代码,然后查看底层框架如何接受除左键之外的其他按钮,右和中。

答案 1 :(得分:0)

不幸的是,pynput中没有这样的功能,如果运行此代码并按鼠标左键,您将意识到它不会提供任何输出:

from pynput import mouse


def on_click(x, y, button, pressed):
    if pressed:
        print ('Mouse clicked {2}'.format(x, y, button))


with mouse.Listener(on_click=on_click) as listener:
    listener.join()

答案 2 :(得分:0)

所以这个问题有点老了,我也遇到了同样的问题。我弄清楚了这些按钮的命名方式:

其Mouse4和Mouse5的Button.x1和Button.x2。

希望我能帮助您。我用来找到它的脚本就在这里:

from pynput.mouse import Listener
def on_click(x, y, button, pressed):
    if pressed:
       print(button)
   
# Collect events until released
with Listener(on_click=on_click) as listener:
    listener.join()