2010-12-04 14 views
7

Hangi uygulamanın gönderilirse yapılsın, fare tıklatmalarını yakalayan bir program oluşturmak istiyorum. Sonra bir saniye içinde yirmi fare tıklaması simüle etmek zorundadır. Ben Python için oldukça yeni değilim ve gerçekten çok anlamak değil, ama ben birkaç sitelerde aramalara ve ben bu kodu monte:Python'da bir giriş kontrol programı gerekir

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") 

Bu sadece bir örnektir. İkinci bir aralık ile 2 fare tıklaması üretmelidir.

herhangi bir fikir nasıl düzeltilir ...

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' 

Ve new.pyc adında bir dosya oluşturur: Ben ancak bunu başlattığınızda, yani ne çıkar mı? Teşekkürler!

+0

Olay işleyicisinde olay oluşturuyor gibi görünüyor. sonsuz bir döngü oluşturan olay için. – jfs

+0

Oh evet! Haklısın. Sadece tıklamaları oluşturmadan önce fareyi çıkarmalıyım sonra tekrar bağladım! Çok teşekkürler! – user530476

+1

Dosyalarınızdan birinin 'new.py' adlı ve Python'un stdlib'inin yeni modülünü gölgelediği anlaşılıyor. Komutunuza yazın: 'import new; new .__ file__' yazdır. Çıktı nedir? – jfs

cevap

1

Kullanım eventghost: http://www.eventghost.org/

  • Açık kaynak
  • Sen
  • Sen yapabilir (hatta çiğ HID aygıtları yakalayabilir)
  • farklı olaylar çok yakalayabilirsiniz
  • Python eklentileri yazabilirsiniz Python
+0

Gerçekten buna ihtiyacım yok. J.F. Sebastien kodumu düzeltmemde bana yardımcı oldu. – user530476