Нужна программа управления вводом в Python - PullRequest
7 голосов
/ 04 декабря 2010

Я хочу создать программу, которая ловит щелчки мышью, независимо от того, в какое приложение она отправляется. Затем он должен имитировать двадцать щелчков мыши в одну секунду. Я новичок в 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")

Это всего лишь образец. Он должен генерировать 2 щелчка мышью со вторым интервалом. Однако когда я запускаю его, вот что получается:

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 голос
/ 19 января 2011

Использование eventghost: http://www.eventghost.org/

  • Открытый исходный код
  • Вы можете написать плагины в Python
  • Вы можете перехватывать множество различных событий (вы даже можете захватитьсырые устройства HID)
  • Вы можете заставить его работать / делать все, что вы обычно делаете с Python
...