2010-12-04 15 views
7

Quiero crear un programa que atrape los clics del mouse, sin importar a qué aplicación se envíe. Luego tiene que simular veinte clics del mouse en un segundo. Soy bastante nuevo en Python, y no estoy realmente comprensión mucho, pero he buscado en varios sitios y armé este código:Necesito un programa de control de entrada en 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") 

Esto es sólo una muestra. Tiene que generar 2 clics del mouse con un segundo intervalo. Cuando lo comienzo sin embargo, eso es lo que sale:

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' 

y crea algún archivo llamado new.pyc ...

Alguna idea de cómo solucionarlo? ¡Gracias!

+0

Parece que está generando eventos en el controlador de eventos para el evento que produce un bucle infinito. – jfs

+0

¡Oh, sí! Tienes razón. ¡Solo tengo que desenganchar el mouse antes de generar los clics y volver a engancharlo! ¡Muchas gracias! – user530476

+1

Parece que uno de sus archivos se llama 'new.py' y sombrea el' nuevo' módulo de stdlib de Python. Escriba en su script: 'import new; imprimir nuevo .__ archivo__'. ¿Cuál es el resultado? – jfs

Respuesta

1

Uso EventGhost: http://www.eventghost.org/

  • de código abierto
  • Usted puede escribir plugins en Python
  • se puede tomar un montón de diferentes eventos (incluso se puede capturar dispositivos HID primas)
  • Usted puede hacer ejecuta/hace cualquier cosa que normalmente podría hacer con Python
+0

Realmente no necesito esto. J.F. Sebastien ya me ayudó a arreglar mi código. – user530476

Cuestiones relacionadas