#python #pynput
#python #pynput
Вопрос:
Я пытаюсь определить, какая кнопка мыши была нажата
итак, вот мой код:
from pynput.mouse import Listener
def on_click(button, pressed):
if button.Left and pressed:
print("You pressed the left mouse button")
if button.Right and pressed:
print("You pressed the right mouse button")
значит, ошибок не было, но это не работает, есть какие-то идеи?
Комментарии:
1. Видно, что вы импортируете из пакета с именем pynput, однако в вопросе вам следует более четко указать, какую структуру вы используете
2. Во-первых, вы не подключаете слушателя. Во-вторых, параметры
x, y, button, pressed
( pynput.readthedocs.io/en/latest/mouse.html#monitoring-the-mouse )
Ответ №1:
Из документации здесь
код
from pynput import mouse
def on_move(x, y):
print('Pointer moved to {0}'.format(
(x, y)))
def on_click(x, y, button, pressed):
print(button) # Print button to see which button of mouse was pressed
print('{0} at {1}'.format(
'Pressed' if pressed else 'Released',
(x, y)))
# Collect events until released
with mouse.Listener(
on_click=on_click
) as listener:
listener.join()
# ...or, in a non-blocking fashion:
listener = mouse.Listener(on_click=on_click)
listener.start()
Как вы можете видеть, button
параметр в функции on_click
сообщает вам, какая кнопка была нажата.
Редактировать:
Вот как вы можете обрабатывать действия в зависимости от того, какая кнопка мыши была нажата
def on_click(x, y, button, pressed):
btn = button.name
if btn == 'left':
print('Left if Pressed')
# ====== < Handle Pressed or released Event ====== > #
if pressed:
print('Do somethin when Pressed with LEft')
else:
print('LEFT is Released')
elif btn == 'right':
print('Right BTN was pressed ')
# ====== < Handle Pressed or released Event ====== > #
if not pressed:
print('right Button is released')
else:
pass
Комментарии:
1. Привет, спасибо, но как я могу проверить, нажата она или нет?
2. Я отредактировал ответ, просто используйте нажатый параметр.
3. Привет, спасибо за ответ, но я получаю сообщение об ошибке и не могу ее исправить, вот мой код
4. Код « из pynput.кнопка импорта мыши, контроллер из pynput импорт время импорта мыши импорт случайная мышь = контроллер () def on_click(x, y, кнопка нажата): btn = кнопка. имя, если btn == ‘left’: при нажатии: mouse.click(кнопка.слева) time.sleep(случайный.равномерный (0.01,0.05)) mouse.click(кнопка.слева) time.sleep (случайный.равномерный (0.055, 0.095)) с помощью мыши. Слушатель ( on_click= on_click ) в качестве слушателя: listener.join() «
5. из pynput.кнопка импорта мыши, контроллер из pynput импорт время импорта мыши импорт случайная мышь = контроллер () def on_click(x, y, кнопка нажата): btn = кнопка. имя, если btn == ‘left’: при нажатии: mouse.click(кнопка.слева) time.sleep(случайный.равномерный (0.01,0.05)) mouse.click(кнопка.слева) time.sleep (случайный.равномерный (0.055, 0.095)) с помощью мыши. Слушатель ( on_click= on_click ) в качестве слушателя: listener.join()
Ответ №2:
Я публикую второй ответ из-за другого характера проблемы, обнаруженной в code here
Проблема в том, как вы вызываете импорт.
ИСПРАВЬТЕ КОД
from pynput import mouse
mouse_ = mouse.Controller()
button = mouse.Button
def on_click(x, y, button, pressed):
btn = button.name
if btn == 'left':
if pressed:
mouse_.click(button_.left)
print('works')
with mouse.Listener(
on_click=on_click
) as listener:
listener.join()
Скопируйте и вставьте код без изменений.
ПРЕДУПРЕЖДЕНИЕ
когда я использую button.left
мой компьютер, он становится чрезвычайно зависающим, поэтому я предлагаю вам не использовать его, если вы не знаете, что делаете