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

Python程序无法检测Ctrl+R组合键问题求助

解决Ctrl+R组合键检测失败的问题

keyboard.read_key()只能读取单个按键输入,无法直接识别Ctrl+R这类组合键,你需要用库专门的组合键监听方法来实现需求。以下是两种可行的修正方案:

方案1:使用keyboard.wait()监听组合键

代码简洁直接,适合单快捷键监听场景:

import keyboard
import subprocess
import sys

def _restart():
    # 等待Ctrl+R组合键按下
    keyboard.wait("ctrl+r")
    # 启动restarter.py
    subprocess.Popen([r"C:\Users\Name\AppData\Local\Programs\Python\Python312\python.exe", "restarter.py"])
    # 终止当前程序
    sys.exit()

_restart()

方案2:使用keyboard.add_hotkey()绑定回调

适合需要同时监听多个快捷键的场景:

import keyboard
import subprocess
import sys

def on_restart_triggered():
    # 启动restarter.py
    subprocess.Popen([r"C:\Users\Name\AppData\Local\Programs\Python\Python312\python.exe", "restarter.py"])
    # 终止当前程序
    sys.exit()

# 绑定Ctrl+R组合键到回调函数
keyboard.add_hotkey("ctrl+r", on_restart_triggered)

# 保持程序运行以监听按键
keyboard.wait()

注意事项:

  • 修正原代码的拼写错误:subpro应为subprocess,确保导入正确模块。
  • 若你用的leave()是自定义退出函数,替换成对应逻辑即可,常规场景用sys.exit()就能终止当前进程。
  • 这类全局键盘监听程序可能需要管理员权限才能正常捕获按键。

内容的提问来源于stack exchange,提问作者P6A08李倬霖

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:31:00