单击一次 pynput 时双击
Double click when clicking once pynput
尝试做一个当你用pynput点击鼠标左键一次时为你双击的程序。我有以下代码,但如果我 运行 代码,我的鼠标就会出现故障并停止工作。
from pynput.mouse import Listener, Button, Controller
mouse = Controller()
def on_click(x, y, button, pressed):
if pressed == True:
mouse.click(Button.left, 2)
else:
pass
with Listener(on_click=on_click) as listener:
listener.join()
除此之外,按下 "F10" 的实现如何使 1 次点击就像双击一样,再次按下 "F10" 会禁用它,所以 1 次点击就像 1 次点击可能吗?
哦,我可能发现了你的问题,
两个可能的原因:
- 在您的脚本中,当您按下鼠标时 button.It 将调用函数
on_click
。然后它将 mouse.click(Button.left, 2)
。但是这段代码也会调用 on_click
。所以这将是一个无穷无尽的 loop.Finally,你会发现你的鼠标不会 responding.So 我认为你应该使用另一种方式来做到这一点。
- 在
pynput
官方文档中,好像可以在macOS下使用(可能windows不能用it.And我也发现只用mouse.click(Button.left, 2)
在我的电脑上,我的 python 将没有响应。(无法停止)。也许你应该直接使用 .press
和 .release
:
Also in addition of this, how would the implementation of pressing "F10" enables that 1 click acts like double click and pressing "F10" again would disable it.
所以这似乎是一个开关,你可以使用一个 global
变量来做 that.There 是使用 pynput 做一个开关的最小例子。(这不会打印 Mode is on
如果不按F10,再按F10就不会打印了)。
# import win32api,win32con
from pynput.mouse import Controller
from pynput import keyboard
from pynput.keyboard import Key
mouse = Controller()
Mode = False
def on_press(key):
global Mode
if key == Key.f10:
if Mode:
Mode = False
else:
Mode = True
listener = keyboard.Listener(on_press=on_press)
listener.start()
while True:
if Mode:
print("Mode is on")
尝试做一个当你用pynput点击鼠标左键一次时为你双击的程序。我有以下代码,但如果我 运行 代码,我的鼠标就会出现故障并停止工作。
from pynput.mouse import Listener, Button, Controller
mouse = Controller()
def on_click(x, y, button, pressed):
if pressed == True:
mouse.click(Button.left, 2)
else:
pass
with Listener(on_click=on_click) as listener:
listener.join()
除此之外,按下 "F10" 的实现如何使 1 次点击就像双击一样,再次按下 "F10" 会禁用它,所以 1 次点击就像 1 次点击可能吗?
哦,我可能发现了你的问题, 两个可能的原因:
- 在您的脚本中,当您按下鼠标时 button.It 将调用函数
on_click
。然后它将mouse.click(Button.left, 2)
。但是这段代码也会调用on_click
。所以这将是一个无穷无尽的 loop.Finally,你会发现你的鼠标不会 responding.So 我认为你应该使用另一种方式来做到这一点。 - 在
pynput
官方文档中,好像可以在macOS下使用(可能windows不能用it.And我也发现只用mouse.click(Button.left, 2)
在我的电脑上,我的 python 将没有响应。(无法停止)。也许你应该直接使用.press
和.release
:
Also in addition of this, how would the implementation of pressing "F10" enables that 1 click acts like double click and pressing "F10" again would disable it.
所以这似乎是一个开关,你可以使用一个 global
变量来做 that.There 是使用 pynput 做一个开关的最小例子。(这不会打印 Mode is on
如果不按F10,再按F10就不会打印了)。
# import win32api,win32con
from pynput.mouse import Controller
from pynput import keyboard
from pynput.keyboard import Key
mouse = Controller()
Mode = False
def on_press(key):
global Mode
if key == Key.f10:
if Mode:
Mode = False
else:
Mode = True
listener = keyboard.Listener(on_press=on_press)
listener.start()
while True:
if Mode:
print("Mode is on")