我正在编写一个宏,当我按下一个键时,它会点击屏幕上的某些位置。
第一次按下键时,一切运行良好。
然而,任何其他按键都会导致错误:
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()
似乎第一次由pyHook运行DeleteRun函数时,time.sleep()接受浮点数。
在任何后续的函数调用中,它似乎只接受整数。
是什么导致这种情况发生?
我不能等待5秒钟来排列鼠标!它应该节省时间!
规格:
python 2.7.2
Windows 7 (32)
import time as time_safe
并使用time_safe
替换time
吗?也许 pyHook 在处理time
类。 - Blenderfrom time import sleep
? - Karl Knechtelimport time,functools
并使用Sleep = functools.partial(time.sleep, 0.1)
,然后在DeleteRun(event): ... Sleep() ...
中使用。 - jfstime.sleep
引起的。 - MrGomez