2016-03-05 18 views
0

所以我一直在研究一個非常基本的'fastclick宏'。如果點擊速度快於每秒5次左右,我希望程序點擊更多。當它達到每秒5次點擊的限制時,我希望它在您的最後一次點擊和您的下一次點擊之間點擊,完成time.sleep(clicktime/2)。出於某種原因,我得到一個錯誤:time.sleep(類型爲NoneType)

an integer is required (got type NoneType)

這裏是我的代碼:

import pythoncom, pyHook, sys, winsound, os 
import win32api, win32con, random, time 
from pyHook import HookManager 
from pyHook.HookManager import HookConstants 

macro = False 
tip = 1 
firstclick = 0 
secondclick = 0 
clicktime = 1 

bot = False 

def ExtraClick(): 
    global clicktime 
    global bot 
    x, y = win32api.GetCursorPos() 
    print('click') 
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0) 
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0) 
    bot = True 

def OnMouseClick(event): 
    global tip 
    global firstclick 
    global secondclick 
    global clicktime 
    global macro 
    global bot 

    if bot == True: 
     bot = False 

    if bot == False: 
     if tip == 0: 
      tip = 1 
      firstclick = time.time() 
      clicktime = firstclick - secondclick 
      print(clicktime) 


     elif tip == 1: 
      tip = 0 
      secondclick = time.time() 
      clicktime = secondclick - firstclick 
      print(clicktime)      


def OnKeyEvent(event): 
    global macro 
    if event.KeyID == 192: 
     if macro == True: 
      macro = False 
      print('off') 
      winsound.Beep(600, 30) 
      winsound.Beep(550, 30) 
     else: 
      macro = True 
      print('on') 
      winsound.Beep(1000, 30) 
      winsound.Beep(1100, 30) 
      clickspeed = 1 

hm = pyHook.HookManager() 
while True: 
    hm.MouseLeftDown = OnMouseClick 
    hm.KeyDown = OnKeyEvent  
    if clicktime < 0.20 and macro == True: 
     time.sleep(clicktime/2) 
     ExtraClick()  
    hm.HookMouse() 
    hm.HookKeyboard() 
    pythoncom.PumpWaitingMessages() 

我也試了一下,而不是使用time.sleep(clicktime/2)time.sleep(0.1),但是這給了同樣的錯誤。

+2

什麼是追溯? – zondo

+0

像@zondo一樣,你應該發佈錯誤引用(或其中最重要的部分)。這將顯示該文件和該文件中引發此錯誤的行。我懷疑錯誤文件/行不是你的time.sleep()被調用的地方。 – CaptSolo

回答

0

問題不在於time.sleep,而在於pyhook - 它看起來需要處理程序返回一個值(True或False)。

看到這個答案:Help with pyHook error

添加return True到事件處理程序的結束。

+0

非常感謝,我誤導了時間睡覺。 –

相關問題