我一直在尝试制作一个程序,当您按 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()
您可以使用监听按键事件的键盘钩子来代替使用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)