我正在使用Python模块Pynput来创建一个宏,该宏将按下我的侧面按钮之一。有人知道Pynput中的侧面按钮是什么吗? 例如:
from pynput.mouse import Button, Controller
mouse = Controller()
mouse.press(Button.SIDEBUTTON)
mouse.release(Button.SIDEBUTTON)
SIDEBUTTON部分会发生什么?
答案 0 :(得分:0)
鼠标模型上的其他按钮通常 表示为“按钮6”和“按钮7”等(按钮4和5是滚动“按钮”)。一些鼠标制造商会发送键盘代码来代替(例如多媒体按钮或其他自定义代码)。
对于Windows和OS X,Pynput仅支持鼠标左键,鼠标右键,鼠标中键,因此就Pynput而言,您在那些平台上会很不走运。如果您使用的是Linux(带有X.org后端),则可以发送和接收更多的按钮,从button8
一直到button31
以及scroll_up
, scroll_down
,scroll_left
和scroll_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()