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李倬霖
相关产品推荐
相关产品推荐

