I'm writing a macro that will click certain spots on the screen when I press a key.
The first time I press a key, everything runs fine.
However, any other key press results in the error:
time.sleep(0.1)
TypeError: an integer is required
Here is the code:
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()
It seems the first time the DeleteRun
function is run by pyHook
, time.sleep(
) accepts floats.
On any following function calls, it seems it only accepts integers.
What is causing this?
I can't wait 5 seconds for the mouse arrangement! It's supposed to save time!
Specs:
- python 2.7.2
- Windows 7 (32)
import time as time_safe
and usetime_safe
in place oftime
? Maybe pyHook is doing something with thetime
class. – Lombardfrom time import sleep
? – Vaulesimport time, functools
before any other module and useSleep = functools.partial(time.sleep, 0.1)
and later in theDeleteRun(event): ... Sleep() ...
– Gendarmerietime.sleep
in a different portion of the code. – Purtenance