Не срабатывает отслеживание кнопки в keyboard на второй итерации

Кратое описание того что снизу: код просто обновляет страницу каждые три секунды, но если в эти три секунды была нажата кнопка 1 то она его останавливает.
Увы но работает только при первой итерации, в последующих она не отслеживает нажатие на кнопку вообще, выдает только False. Почему у него такое поведение? Виноват цикл? Как тогда это заменить?

UPD. Вероятно это проблема не только модуля keyboard так как при использовании программ для макросов, ситуация та же самая. Думаю проблема глубже, но где не представляю. Отключение всех служб для защиты типа брандмауэра и тд. не помогло.

import threading
import time

import keyboard
import pyautogui as pag
import pygetwindow as gw

while_run = True


class WindowNotFoundException(Exception):
    pass


def button_callback():
    print("Button was pressed!")

    global while_run
    while_run = False


def wait_for_button_press(timeout, _button_callback):
    def wait():
        start_time = time.time()
        while time.time() - start_time < timeout:
            if keyboard.is_pressed("1"):
                return _button_callback()
            time.sleep(0.2)

    wait_thread = threading.Thread(target=wait)
    wait_thread.start()
    wait_thread.join()


def main():
    while while_run:
        # Активируем окно
        win = gw.getWindowsWithTitle('TelegramDesktop')
        if not win:
            raise WindowNotFoundException
        win[0].activate()
        time.sleep(0.1)

        # ищем нужное место
        image_path = "assets/find_for_update.png"
        location = pag.locateCenterOnScreen(image=image_path, minSearchTime=0)
        # клика и перезагрузка
        pag.click(location)
        pag.press("F5")

        wait_for_button_press(3, button_callback)


if __name__ == '__main__':
    try:
        main()
    except gw.PyGetWindowException:
        print("Была нажата кнопка. Программа закрывается")
    except WindowNotFoundException:
        print("Окно не было найдено")

Ответы (0 шт):