Повторяющийся цикл AutoKey

Я часами искал форумы и Интернет в поисках способа создания повторяющегося цикла Python для Autokey. Цель состоит в том, чтобы разрешить временные интервалы нажатия клавиш, такие как нажатие «1» каждые 16 секунд, «2» каждые 30 и т. д. и т. д. для столько клавиш, сколько мне может понадобиться (вероятно, менее 8). Я также хотел бы иметь возможность завершить этот процесс по щелчку любой комбинации. Я тестировал зацикливание только 1 ввода с клавиатуры каждые 5 секунд, и я могу легко заставить это работать. Я новичок в python и кодировании в целом, и то, что работало для меня в прошлом, здесь не работает. Я пытался:

import time
import sys
try:
    while True:
        time.sleep(5)
        keyboard.send_key("4")
except KeyboardInterrupt:
    exit(0)
    sys.exit(0)

и их вариации, такие как переключение цикла while и try/except. Такое ощущение, что мое прерывание клавиатуры не работает должным образом, я использовал ctrl -c и ctrl break, но безрезультатно. Любая помощь приветствуется. Заранее спасибо.


person Community    schedule 12.01.2014    source источник
comment
Я предполагаю, что вы пытаетесь набирать 4 8 15 16 23 42 каждые 108 минут?   -  person mhlester    schedule 14.01.2014


Ответы (1)


KeyboardInterrupt перехватывает только Ctrl+C, если он был отправлен на управляющий терминал. Это означает, что если вы нажмете Ctrl+C из другого окна, он не сработает.

Чтобы обойти это, вам нужно зарегистрировать сочетание клавиш Ctrl+C и отправить сигнал вашему основному сценарию.

person kiri    schedule 12.01.2014
comment
Есть ли способ завершить скрипт Python извне, к которому может быть прикреплен ярлык? в настоящее время я выхожу из системы и возвращаюсь к своему пользователю на рабочем столе, чтобы убить неуправляемый скрипт - person ; 12.01.2014