首页 文章

PyHook鼠标事件

提问于
浏览
0

我在Python中编写了一个小程序,当我按下鼠标左键时执行“go”功能 . 然而,我的意图是只在我持有LMB时才执行 . 如果我发布LMB,它应该取消“go” . 最后当取消或成功执行时,我应该准备好再次按下LMB时也这样做 .

这是代码:

import pyHook
import pythoncom
import pyautogui
from time import sleep
pyautogui.size()

width, height = pyautogui.size()


def go(event):

    sleep(0.099)
    pyautogui.moveRel(4, 19, duration=0.099)
    pyautogui.moveRel(-4, 7, duration=0.099)
    pyautogui.moveRel(-3, 29, duration=0.099)
    pyautogui.moveRel(-1, 31, duration=0.099)
    pyautogui.moveRel(13, 31, duration=0.099)
    pyautogui.moveRel(8, 28, duration=0.099)
    pyautogui.moveRel(13, 21, duration=0.099)
    pyautogui.moveRel(-17, 12, duration=0.099)
    pyautogui.moveRel(-42, -3, duration=0.099)
    pyautogui.moveRel(-21, 2, duration=0.099)
    pyautogui.moveRel(-15, 7, duration=0.099)
    pyautogui.moveRel(12, 11, duration=0.099)
    pyautogui.moveRel(-26, -8, duration=0.099)
    pyautogui.moveRel(-3, 4, duration=0.099)
    pyautogui.moveRel(40, 1, duration=0.099)
    pyautogui.moveRel(19, 7, duration=0.099)
    pyautogui.moveRel(14, 10, duration=0.099)
    pyautogui.moveRel(27, 0, duration=0.099)
    pyautogui.moveRel(33, -10, duration=0.099)
    pyautogui.moveRel(-21, -2, duration=0.099)
    pyautogui.moveRel(7, 3, duration=0.099)
    pyautogui.moveRel(-7, 9, duration=0.099)
    pyautogui.moveRel(-8, 4, duration=0.099)
    pyautogui.moveRel(19, -3, duration=0.099)
    pyautogui.moveRel(5, 6, duration=0.099)
    pyautogui.moveRel(-20, -1, duration=0.099)
    pyautogui.moveRel(-33, -4, duration=0.099)
    pyautogui.moveRel(-45, -21, duration=0.099)
    pyautogui.moveRel(-14, 1, duration=0.099)
    return True



hm = pyHook.HookManager()
hm.SubscribeMouseLeftDown(go)
hm.HookMouse()
pythoncom.PumpMessages()
hm.UnhookMouse()

1 回答

  • 0

    您的问题是go()中的所有代码都是顺序的 . 如果它是迭代的,你可以检查在该循环中触发的事件或bool并中止go() . 可以在SubscribeMouseLeftUp()上触发bool / event . 在您的情况下,这不能迭代完成 .

    你也许可以尝试在你的go()方法中检查触发器是不是很干净,但是它可以完成这项工作,无论是以非常低效的方式 .

    第三,根据hooks和gui在线程中的工作原理,你可以将go()卸载到一个线程中 . 在MouseDown上关闭该线程并在MouseUp上中止/终止它 .

相关问题