如何在按下回车键前执行函数?实现输入内容自动追加指定表情
解决回车前追加表情的问题
你的代码问题在于,hook_key的回调是在回车按键事件触发后执行,且block_key的拦截方式不够精准,导致表情仍在回车提交后才出现。可以通过抑制回车的默认行为、调整执行时序来实现需求:
import keyboard def on_enter_press(event): if event.name == "enter": # 直接抑制回车的默认提交行为 event.suppress = True # 写入要追加的表情到输入框 keyboard.write("🗿🍷") # 加微小延迟确保表情写入完成,再触发回车发送内容 keyboard.press_and_release("enter", delay=0.05) # 监听所有按键按下事件 keyboard.on_press(on_enter_press) # 等待ESC键退出程序 keyboard.wait("esc")
关键调整说明:
- 用
keyboard.on_press替代hook_key,配合event.suppress = True直接阻止回车的默认提交动作,避免原内容先被发送。 - 添加
delay=0.05的微小延迟,确保表情完全写入输入框后再触发回车,解决时序错位问题。 - 移除
unhook_all(),否则只能触发一次回车操作,保证功能持续生效。
内容的提问来源于stack exchange,提问作者Lethargistic
相关产品推荐
相关产品推荐

