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 секунд для расположения мыши! Это должно экономить время!

Спецификации:

  • Python 2.7.2
  • Windows 7 (32)
8
задан juliomalegria 18 March 2012 в 23:36
поделиться