import keyboard import time import sys # 可配置参数 START_STOP_KEY = '-' # 启动/停止按键 HOLD_KEY = 'w' # 程序运行时持续按下的键 EXIT_KEY = 'esc' # 注意:虽然你要求ESC不退出,但我们会忽略它 # 状态变量 is_running = False should_exit = False def on_p_pressed(e): global is_running if e.event_type == keyboard.KEY_DOWN: is_running = not is_running if not is_running: # 当停止时立即释放按键 keyboard.release(HOLD_KEY) print(f"程序 {'已启动' if is_running else '已停止'}") def main(): print(f"程序已启动,按 {START_STOP_KEY} 键开始/停止,按 Ctrl+C 退出") print(f"程序运行时将持续按下 {HOLD_KEY} 键") keyboard.hook_key(START_STOP_KEY, on_p_pressed) try: while not should_exit: if is_running: keyboard.press(HOLD_KEY) # 保持按键状态,但允许其他事件处理 time.sleep(0.1) else: time.sleep(0.1) except KeyboardInterrupt: print("\n程序通过 Ctrl+C 退出") finally: if is_running: keyboard.release(HOLD_KEY) keyboard.unhook_all() if __name__ == "__main__": main()