You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Autokey中按下指定按键时终止while循环

问题原因分析

你的代码存在三处核心逻辑错误,直接导致停止功能失效:

  • 按键检测逻辑写在循环外,仅在脚本启动时执行了一次主动按s键的操作,完全没有实现后续用户主动按键的监听
  • keyboard.press_key() 是按键发送方法,没有返回按键状态的功能,变量b的取值和你后续是否按下s键完全无关
  • 循环内2秒的休眠是连续阻塞的,即便加了正确的按键检测,也只有在休眠结束的瞬间才会触发判断,用户按下按键的响应延迟极高
修正后的可用代码(适配Autokey环境)
import time

# 可自定义停止按键,功能键可写为'<ctrl>'、'<f5>'等符合Autokey命名规则的取值
stop_key = 's'

while True:
    # 每次循环开头先检测停止键
    if keyboard.is_pressed(stop_key):
        break
    # 执行预设的按键发送逻辑
    keyboard.send_key("a", repeat=5)
    # 拆分2秒休眠为20次0.1秒的小休眠,实时检测停止键避免响应延迟
    for _ in range(20):
        if keyboard.is_pressed(stop_key):
            break
        time.sleep(0.1)
    else:
        # 20次小休眠都未触发停止,继续下一轮大循环
        continue
    # 休眠阶段检测到停止按键,跳出外层循环
    break
注意事项
  • Autokey脚本运行时会接管部分键盘事件,不要设置和系统/其他软件冲突的快捷键作为停止键
  • 如果停止键响应不够灵敏,可以适当调小小休眠的间隔,比如把0.1改成0.05,对应的range(20)改成range(40)即可保证总休眠时长仍为2秒

内容的提问来源于stack exchange,提问作者minionlou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:42:03