2012-03-18 40 views
8

Bir tuşa bastığımda ekranda belirli noktalar tıklayacak bir makro yazıyorum.time.sleep tam sayı gerektirir?

Bir tuşa ilk basışımda her şey yolunda gidiyor.
Ancak yanlışlıkla başka tuşa basın sonuçları: Burada

time.sleep(0.1) 
TypeError: an integer is required 

kodudur:

import win32api 
import win32con 
import time 
import pythoncom 
import pyHook 
import os 

def Click(x,y): 
    win32api.SetCursorPos((x,y)) 
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0) 
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0) 

def DeleteRun(event): 
    Click(1250, 741) 
    time.sleep(0.1) 
    Click(649,261) 
    time.sleep(0.1) 
    Click(651, 348) 
    time.sleep(0.1) 
    Click(800, 442) 
    time.sleep(0.1) 
    Click(865, 612) 


Click(20,20) 
KeyGrabber = pyHook.HookManager() 
KeyGrabber.KeyDown = DeleteRun 
KeyGrabber.HookKeyboard() 
pythoncom.PumpMessages() 

O DeleteRun fonksiyon pyHook tarafından ilk çalıştırıldığında görünüyor time.sleep() yüzen kabul eder.
Aşağıdaki herhangi bir işlev çağrısında, yalnızca tamsayı kabul ettiği görülüyor.

Buna neden oluyor?
Fare düzenlemesi için 5 saniye bekleyemiyorum! Zaman kazanması gerekiyordu!

Özellikleri:

  • piton 2.7.2
  • , Windows 7 (32)
+1

Time_safe' olarak içe aktarma yapabilir ve 'time' yerine' time_safe' işlevini kullanabilir misiniz? Belki pyHook, 'zaman' sınıfı ile bir şeyler yapıyor. – Blender

+0

Başarı yok Korkuyorum. Bununla birlikte, çalışmanın ve başarısız olmanın değiştiğini fark ettim. –

+0

Belki de özellikle 'içe aktarma zamanı'ndan' deneyin? –

cevap

5

Tamam, buna ne dersin?

def DeleteRun(event): 
    Click(1250, 741) 
    time.sleep(0.1) 
    [...] 
    return True 

yapayım muhtemelen bu google-fu daha küçük olduğunu itiraf: DeleteRun True dönüşü ekle this question cevabını okuyun.

+1

İyi Tanrım, bunu yaptın! –

+0

Başka bir konuya sahip olmak, belki ilgili. http://stackoverflow.com/questions/9763053/pyhook-giving-up –

-1

Ben Windows ile bu kez neyin yanlış olduğundan emin değilim, ama bir numara deneyebilirsiniz Dosya tanımlayıcıları olmadan select() kullanarak yüksek hassasiyetli uyku.

+0

Bana bir uygulama örneği verebilir misiniz? –