Python 检测 Ctrl+R[已编辑]

问题描述 投票:0回答:1

我一直在尝试制作一个程序,当您按 Ctrl+R 时,它将运行另一个程序并杀死自己,另一个程序将使用子进程启动主程序。 Popen,程序无法检测到整个按键,我使用keyboard.read_key()时只检测到Ctrl

def _restart():
    while keyboard.read_key()!="^R":
        pass
    subpro.Popen([r"C:\Users\Name\AppData\Local\Programs\Python\Python312\python.exe","restarter.py"])
leave()
python python-3.x keyboard
1个回答
0
投票

您可以使用监听按键事件的键盘钩子来代替使用keyboard.read_key()。这将允许您检测组合按键,例如 Ctrl+R。

示例代码:

import keyboard
import subprocess
import os
import signal
import time

def restart_program():
    # Terminate the current program
    os.kill(os.getpid(), signal.SIGTERM)

    # Start the restarter script
    subprocess.Popen([r"C:\Users\Name\AppData\Local\Programs\Python\Python312\python.exe", "restarter.py"])

def on_key_event(event):
    if event.name == 'r' and event.event_type == 'down' and keyboard.is_pressed('ctrl'):
        restart_program()

# Hook the keyboard events
keyboard.hook(on_key_event)

# Keep the program running
while True:
    time.sleep(1)
© www.soinside.com 2019 - 2024. All rights reserved.