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

如何用Python的Keyboard模块实现按键长按功能?

如何用Python的keyboard模块实现长按按键直到指定按键触发释放

我正在开发一款赛车游戏AI,需要实现长按“w”键实现加速的功能(而非快速点按)。尝试用Python的keyboard模块写了一段代码,但没能实现预期的长按效果,想知道怎么修改才能让“w”键保持长按状态,直到按下“del”键时才释放。

尝试的代码:

keyboard.press('w')
keyboard.wait('del')
keyboard.release('w')

你的代码逻辑本身是正确的,没能达到预期效果大概率是权限问题导致的。keyboard模块需要系统级的按键控制权限,需要注意以下几点:

  1. 安装依赖模块
    确保已正确安装keyboard模块:

    pip install keyboard
    
  2. 以管理员权限运行脚本

    • Windows:右键命令提示符/终端选择“以管理员身份运行”,再执行Python脚本
    • Linux/macOS:运行脚本时添加sudo前缀:
      sudo python your_script.py
      
  3. 代码逻辑说明

    • keyboard.press('w'):会持续按住“w”键,不会自动释放
    • keyboard.wait('del'):阻塞当前线程,直到检测到“del”键被按下
    • keyboard.release('w'):接收到“del”键触发信号后,释放“w”键

如果需要避免主线程被阻塞,可以结合线程实现,示例代码如下:

import keyboard
import threading

def hold_w_until_del():
    keyboard.press('w')
    keyboard.wait('del')
    keyboard.release('w')

# 启动线程执行长按逻辑
threading.Thread(target=hold_w_until_del).start()

# 主线程可继续执行其他AI逻辑
while True:
    # 此处添加赛车游戏AI的其他处理逻辑
    pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:02:07