需要一个Python输入控制程序

7 投票
1 回答
1174 浏览
提问于 2025-04-16 08:01

我想写一个程序,可以捕捉鼠标点击,不管是在什么应用程序里。然后它需要在一秒钟内模拟二十次鼠标点击。我对Python还很陌生,很多地方都不太明白,但我在几个网站上查找了一下,拼凑出了这段代码:

import time
import ctypes
import pyHook
import pythoncom
MOUSEEVENTF_MOVE = 0x0001 # mouse move
MOUSEEVENTF_ABSOLUTE = 0x8000 # absolute move
MOUSEEVENTF_MOVEABS = MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE

MOUSEEVENTF_LEFTDOWN = 0x0002 # left button down 
MOUSEEVENTF_LEFTUP = 0x0004 # left button up 
MOUSEEVENTF_CLICK = MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP

def click(vdf):
    hm.UnhookMouse()
    ctypes.windll.user32.mouse_event(MOUSEEVENTF_CLICK, 0, 0, 0, 0)
    time.sleep(1)
    ctypes.windll.user32.mouse_event(MOUSEEVENTF_CLICK, 0, 0, 0, 0)
    hm.HookMouse()
    return 0

hm = pyHook.HookManager()
hm.SubscribeMouseAllButtonsDown(click)
hm.HookMouse()
pythoncom.PumpMessages()
os.system("pause")

这只是一个示例。它应该每秒生成两个鼠标点击。不过,当我启动它的时候,结果却是这样:

Traceback (most recent call last):
  File "C:\Documents and Settings\Valjo\Desktop\hack.py", line 3, in <module>
    import pyHook
  File "D:\Python2.7\lib\site-packages\pyHook\__init__.py", line 1, in <module>
    from HookManager import *
  File "D:\Python2.7\lib\site-packages\pyHook\HookManager.py", line 1, in<module>
    import cpyHook
  File "D:\Python2.7\lib\site-packages\pyHook\cpyHook.py", line 9, in <module>
    new_instancemethod = new.instancemethod
AttributeError: 'module' object has no attribute 'instancemethod'

而且它还创建了一个名为 new.pyc 的文件……

有没有什么办法可以解决这个问题? 谢谢!

1 个回答

1

可以使用 EventGhost: http://www.eventghost.org/

  • 这是一个开源软件
  • 你可以用 Python 编写插件
  • 可以捕捉很多不同的事件(甚至可以捕捉原始的 HID 设备)
  • 你可以让它运行任何你通常用 Python 能做到的事情

撰写回答