Pyhook прекращает захват ключевых событий после 6 нажатий

Я написал скрипт для перемещения мыши при нажатии клавиши с помощью pyHook. Проблема в том, что после 6 событий нажатия клавиш скрипт перестает воспринимать нажатия клавиш и должен быть завершен из диспетчера задач.

Я использую Python 2.7 на компьютере с Windows 7. Я не нашел никого другого с ответом на подобную проблему.

Код предназначен для подключения мыши, а затем, когда она нажата, переместите курсор, отцепите мышь и подключите клавиатуру. Там хук клавиатуры работает только для 6 событий. Если держать мышь и клавиатуру подключенной, каждая ловушка работает только для 6 событий. У кого-нибудь есть идеи, в чем проблема и как ее исправить?

import pythoncom, pyHook, win32api
import math
from time import sleep

# Radius is 250px
radius = 50

# Intervals in the circle
n_intervals = 50

# List of intervals
l_intervals = []
for i in range(0, n_intervals):
        l_intervals.append((i+1) * math.pi * 2 / n_intervals)
# Move the cursor in a circle
def move_circle():
        (x, y) = win32api.GetCursorPos()
        old_pos = (x, y)
        center = (x-radius, y)
        for i in l_intervals:
                p = (radius * math.cos(i), radius * math.sin(i))
                new_pos = (int(center[0]+p[0]), int(center[1]-p[1]))
                win32api.SetCursorPos(new_pos)
                sleep(0.01)


def OnKeyboardEvent(event):
    if event.Key == "Media_Play_Pause":
        exit()
    else:
        move_circle()

    # return True to pass the event to other handlers
    return True


def OnMouseEvent(event):
    # called when mouse events are received
        if event.MessageName == "mouse left down":
                move_circle() # move the cursor
            hm.UnhookMouse() # unhook the mouse
            hm.HookKeyboard() # hook the keyboard
        return True


hm = pyHook.HookManager()
hm.MouseAll = OnMouseEvent
hm.KeyDown  = OnKeyboardEvent
# Hook the mouse
hm.HookMouse()
# Wait for any events
pythoncom.PumpMessages()

ОБНОВИТЬ: Я нашел решение и разместил ответ ниже, но все равно буду благодарен за любые ответы, которые могут объяснить, почему у меня возникла проблема, и почему решение ее устраняет.

Ответы на вопрос(1)

Ваш ответ на вопрос