python - 使用pyHook获取鼠标坐标稍后回放

标签 python pyhook

我正在编写一大段代码来使用 pyHook 收集鼠标点击信息,然后使用 win32api 来访问点击功能。本质上,我是在尝试使用鼠标记录点击模式,以便稍后记录和回放。

这是我现在的代码:

import win32api, win32con, time, win32ui, pyHook, pythoncom

#Define the clicks in the win32api
def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

def onclick(event):
    click()
    print event.Position
    return True

hm = pyHook.HookManager()
hm.SubscribeMouseAllButtonsDown(click)
hm.HookMouse()
pythoncom.PumpMessages()
hm.UnhookMouse()

我敢肯定有些事情非常简单。

这也是我通过运行它得到的调试信息:

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\pyHook\HookManager.py", line 325, in MouseSwitch
return func(event)
TypeError: click() takes exactly 2 arguments (1 given)

最佳答案

hm.SubscribeMouseAllButtonsDown(点击) -> hm.SubscribeMouseAllButtonsDown(点击)

删除了 onclick 中的 click() 调用。

import win32api, win32con, time, win32ui, pyHook, pythoncom

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

def onclick(event):
    print event.Position
    return True

hm = pyHook.HookManager()
hm.SubscribeMouseAllButtonsDown(onclick)
hm.HookMouse()
pythoncom.PumpMessages()
hm.UnhookMouse()

关于python - 使用pyHook获取鼠标坐标稍后回放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17244317/

相关文章:

python - python 3.5 上的 PyHook

Python:鼠标按下时计数,鼠标向上时停止

python - Pyhook 事件。注入(inject)?

当使用 Hook 到某些应用程序时,pythoncom 在 KeyDown 上崩溃

python - 如何在 Python 3 中创建这个复杂的字典?

python - 如何让 scikit 从预标记文档中计算文档术语矩阵?

python - 与 zip(*[iter(s)]*n) 相反

python - time.sleep 需要整数?

python - Cython 重载 "no suitable method found"

python - 检测虚拟机中的云类型