2012-03-18 17 views
8

मैं एक मैक्रो लिख रहा हूं जो एक कुंजी दबाते समय स्क्रीन पर कुछ स्पॉट्स पर क्लिक करेगा।time.sleep पूर्णांक की आवश्यकता है?

पहली बार जब मैं एक कुंजी दबाता हूं, तो सब ठीक हो जाता है।
हालांकि, गलती से किसी अन्य कुंजी दबाएँ परिणाम:

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

यहाँ कोड है:

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

यह पहली बार DeleteRun समारोह pyHook द्वारा चलाया जाता है लगता है, time.sleep() तैरता स्वीकार करता है।
किसी भी निम्न फ़ंक्शन कॉल पर, ऐसा लगता है कि यह केवल पूर्णांक स्वीकार करता है।

इसका कारण क्या है?
मैं माउस व्यवस्था के लिए 5 सेकंड इंतजार नहीं कर सकता! यह समय बचाने के लिए माना जाता है!

चश्मा:

  • अजगर 2.7.2
  • विंडोज 7 (32)
+1

क्या आप 'time_safe के रूप में समय आयात कर सकते हैं' और 'time' के स्थान पर' time_safe' का उपयोग कर सकते हैं? शायद pyHook 'time' कक्षा के साथ कुछ कर रहा है। – Blender

+0

कोई सफलता नहीं मैं डरता हूँ। मैंने देखा है कि यह काम करता है और असफल रहा है। –

+0

शायद विशेष रूप से 'समय आयात नींद' से आज़माएं? –

उत्तर

5

ठीक है, इस बारे में कैसे? एक वापसी सच DeleteRun में जोड़ें:

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

मैं चाहिए शायद कबूल है कि इस छोटे से गूगल फू की तुलना में अधिक था: this question का जवाब पढ़ें।

+1

अच्छा भगवान, आपने यह किया है! –

+0

एक और मुद्दा होने के साथ, शायद संबंधित। http://stackoverflow.com/questions/9763053/pyhook-giving-up –

-1

मुझे यकीन है कि क्या इस समय विंडोज के साथ गलत क्या है नहीं कर रहा हूँ, लेकिन आप एक faking की कोशिश कर सकते कोई फ़ाइल डिस्क्रिप्टर के साथ चयन() का उपयोग कर उच्च परिशुद्धता नींद।

+0

क्या आप मुझे कार्यान्वयन का एक उदाहरण दे सकते हैं? –

संबंधित मुद्दे