【问题标题】:AutoKey repeating loop自动键重复循环
【发布时间】:2014-01-12 02:28:02
【问题描述】:

我已经在论坛和网络上搜索了几个小时,以寻找一种为 Autokey 制作重复 python 循环的方法。目标是允许按键的定时间隔,例如每 16 秒按一次“1”,每 30 秒按一次“2”,依此类推,我可能需要尽可能多的键(可能少于 8 个)。我还希望能够通过单击任何组合来结束此过程。我一直在测试每 5 秒只循环 1 个键盘输入,我可以轻松完成这项工作。总的来说,我对 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,但无济于事。任何帮助表示赞赏。提前谢谢你。

【问题讨论】:

  • 我假设您尝试每 108 分钟输入一次4 8 15 16 23 42

标签: python autokey


【解决方案1】:

我也有类似需求,通过搜索,我找到了来自 AutoKey 开发者的comment

这些代码可能是您需要的:

while True:
    retCode = keyboard.wait_for_keypress(
        'c', modifiers=['<ctrl>'], timeOut=5)
    if retCode:
        break
    keyboard.send_key("4")

【讨论】:

    【解决方案2】:

    KeyboardInterrupt 仅在发送到控制终端时才捕获 Ctrl+C。这意味着如果您从不同的窗口按 Ctrl+C,它不会捕捉到。

    要解决这个问题,您需要在 Ctrl+C 上注册一个键盘快捷键,并让它向您的主脚本发送信号。

    【讨论】:

    • 有没有办法在外部终止一个可以附加快捷方式的 python 脚本?目前我一直在注销并重新登录我的桌面用户以杀死失控脚本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2016-07-11
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多