Я хочу использовать прослушиватель мыши в модуле Pynput для мониторинга события щелчка. Муравей в соответствии со статусом события запускает одну функцию. Но, похоже, что-то не так со статусом события.
from pynput.keyboard import Controller, Key, Listener
from pynput import mouse
from pynput import keyboard
import pythoncom
from ctypes import *
flag = False
def on_right_click(x, y, button, pressed):
global flag
# boolFlag = False
button_name = ''
if button == mouse.Button.right:
user32 = windll.LoadLibrary('user32.dll')
if flag == True:
user32.BlockInput(False)
flag = False
else:
user32.BlockInput(True)
flag = True
print(flag)
button_name = 'Right Button'
elif button == mouse.Button.left:
button_name = 'Left Button'
if pressed:
print('{0} is pressed at {1}, {2}'.format(button_name, x, y))
if not pressed:
return False
while True:
with mouse.Listener(on_click=on_right_click) as listener:
listener.join()
Обычно флаг изменяется один раз и вызывает функцию BlockInput, но ниже приведены реальные результаты:
True
Right Button is pressed at 3478, 303
False
Итак, почему флаг меняется дважды?