2010-12-04 63 views
7

Je veux créer un programme qui attrape les clics de souris, peu importe dans quelle application il est envoyé. Ensuite, il doit simuler vingt clics de souris en une seconde. Je suis tout à fait nouveau pour Python, et je ne suis pas vraiment comprendre beaucoup, mais je l'ai cherché dans plusieurs sites et j'ai monté ce code:Besoin d'un programme de contrôle d'entrée 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") 

Ceci est juste un échantillon. Il doit générer 2 clics de souris avec un second intervalle. Quand je commence il cependant, c'est ce qui sort:

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' 

Et il crée le fichier indiqué new.pyc ...

Toute idée comment résoudre ce problème? Merci!

+0

Il semble que vous générez des événements dans le gestionnaire d'événements pour l'événement qui produit une boucle infinie. – jfs

+0

Oh ouais! Tu as raison. Seulement je dois décrocher la souris avant de générer les clics puis la rebrancher! Merci beaucoup! – user530476

+1

Il semble que l'un de vos fichiers s'appelle 'new.py' et il ombrage le module' new' de stdlib de Python. Écrivez dans votre script: 'import new; imprime le nouveau fichier .____. Quelle est la sortie? – jfs

Répondre

1

Utilisation eventghost: http://www.eventghost.org/

  • Open Source
  • Vous pouvez écrire des plugins en Python
  • Vous pouvez prendre beaucoup de différents événements (vous pouvez même capturer des périphériques HID premières)
  • Vous pouvez faire il exécute/fait tout ce que vous pouvez normalement faire avec Python
+0

Je n'ai pas vraiment besoin de ça. J.F. Sébastien m'a déjà aidé à réparer mon code. – user530476