2010-12-04 10 views
7

Ich möchte ein Programm erstellen, das Mausklicks erfasst, egal in welcher Anwendung es gesendet wird. Dann muss es zwanzig Mausklicks in einer Sekunde simulieren. Ich bin ganz neu in Python, und ich bin nicht wirklich viel Verständnis, aber ich habe in mehreren Standorten gesucht und ich zusammengebaut diesen Code:Benötigen Sie ein Eingabesteuerprogramm in 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") 

Dies ist nur ein Beispiel. Es muss 2 Mausklicks mit einem zweiten Intervall erzeugen. Als ich es jedoch starten, ist das, was herauskommt:

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' 

Und es schafft eine Datei mit dem Namen new.pyc ...

Irgendwelche Ideen, wie es zu beheben? Danke!

+0

Es sieht so aus, als würden Sie Ereignisse im Event-Handler generieren für das Ereignis, das eine Endlosschleife erzeugt. – jfs

+0

Oh ja! Du hast recht. Nur muss ich die Maus aushaken, bevor ich die Klicks erzeuge, dann hake sie erneut! Danke vielmals! – user530476

+1

Es scheint, als ob eine Ihrer Dateien den Namen 'new.py' hat und das' neue' Modul von Pythons stdlib abschirmt. Schreibe in dein Skript: 'import new; Druck neu .__ Datei__'. Was ist die Ausgabe? – jfs

Antwort

1

Verwenden Eventghost: http://www.eventghost.org/

  • Open-Source-
  • Sie können Plugins in Python schreiben
  • Sie viele verschiedene Veranstaltungen fangen kann (man kann sogar roh HID-Geräte erfassen)
  • Sie können machen Alles was Sie normalerweise mit Python tun könnten, ist
+0

Ich brauche das nicht wirklich. J.F. Sebastien hat mir bereits geholfen, meinen Code zu reparieren. – user530476

Verwandte Themen