2

我正在使用 Python 模块 Pynput 制作一个可以按下我的侧边按钮的宏。有谁知道 Pynput 中的侧边按钮叫什么?例如:

from pynput.mouse import Button, Controller

mouse = Controller()

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

SIDEBUTTON 部分会发生什么?

4

3 回答 3

4

所以这个问题有点老了,我也有同样的问题。我弄清楚了这些按钮是如何被调用的:

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()
于 2020-11-04T12:05:27.420 回答
1

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

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

因此,根据您使用的鼠标型号和操作系统,您可能能够为这些按钮获取正确的事件,无论是鼠标按钮还是键盘事件。同时注册一个鼠标和一个键盘监听器,并打印出鼠标点击事件的按钮值,以及键盘按下或释放事件的键,看看你是否可以让你的侧按钮显示出来。

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

这并不是说你根本不能发送这样的按钮点击,但你必须研究用于 Windows 或 OSX 的控制器的源代码,然后看看底层框架如何接受除了左、右和其他按钮按下中间。

于 2018-09-30T12:14:52.547 回答
1

不幸的是,没有这样的功能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()
于 2019-02-14T20:29:35.900 回答