Python中的双击程序

问题描述 投票:0回答:1

我用 Python 编写了一个应该执行双击的程序。换句话说,当我按下鼠标左键时,程序应该再次单击。然而,当我单击鼠标左键时,即使程序只单击了一次,光标也开始严重滞后。这是程序代码:

from pynput.mouse import Listener
import pyautogui

def on_click(x, y, button, pressed):
    if button == button.left and pressed:
        print("wawawa")
        pyautogui.click()

with Listener(on_click=on_click) as listener:
    listener.join()

控制台只打印了两条“哇哇”消息。换句话说,程序只点击了一次

python pyautogui pynput
1个回答
0
投票

尚未使用

pynput
进行测试并使用 pyWinhook
Injected
是一个标志,用于确定点击是否由程序而不是用户触发。

import threading
import pyautogui
import pyWinhook
import pythoncom

clickCount = 0

def onclick(event):
    global clickCount
    print(event.__dict__)
    if event.Injected and clickCount == 1:
        clickCount = 0
        return False
    
    clickCount += 1
    
    threading.Thread(target=pyautogui.click).start()

    return True

hm = pyWinhook.HookManager()
hm.SubscribeMouseAllButtonsDown(onclick)
hm.HookMouse()
pythoncom.PumpMessages()
hm.UnhookMouse()
© www.soinside.com 2019 - 2024. All rights reserved.