Реализация остановки цикла при зажатой клавиши Esc (Python)

Сама идея заключается в том что у меня есть бесконечный цикл, который манипулирует курсором мыши и для того, чтобы выйти из этого цикла мне нужно сделать условие при котором зажатая клавиша Esc (не имеет значения какая будет клавиша на деле), завершала работу цикла. Проблема заключается в том, что во время работы цикла, Cmd считается не активным окном.


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

Автор решения: Shamus Rezol

keyboard

Используйте модуль keyboard.

import keyboard
keyboard.wait("esc")
print("Escape!")

Активно ли окно или нет - не имеет значения. Он поймает нажатие.

Пример с циклом

# 7621ec305801.py
# Date: December 23th, 2020.
import keyboard
import time

n = 2
IsAlive = True
def Terminate():
    global IsAlive
    IsAlive = False
keyboard.add_hotkey('esc', Terminate)

while IsAlive:
    n = 2 + (n ** 2) % 2147000000
    print('\r', n, sep='')
    time.sleep(0.2)
→ Ссылка