You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断按键按下/抬起状态?实现仅在按键抬起时执行代码

问题:实现Ctrl+F按键抬起时执行代码,避免重复触发

当前代码会在Ctrl+F按下时重复触发执行,希望改成仅在按键抬起时才执行一次代码,原代码如下:

import keyboard

if keyboard.is_pressed('f') and keyboard.is_pressed('ctrl'):
    print("clicked")

解决方案

可以使用keyboard库的add_hotkey方法,指定触发时机为按键释放(trigger_on_release=True),这样只有当Ctrl+F组合键抬起时才会执行目标函数,不会重复触发。修改后的代码如下:

import keyboard

def on_ctrl_f_release():
    print("clicked")

# 注册Ctrl+F热键,设置为释放时触发
keyboard.add_hotkey('ctrl+f', on_ctrl_f_release, trigger_on_release=True)

# 保持程序运行,等待按键事件
keyboard.wait()

说明

  • 原代码的问题在于is_pressed只是实时检测当前按键状态,要是把这段代码放进循环里,按住按键期间会不断触发;就算不在循环里,也只能检测一次瞬间状态,完全不符合需求。
  • add_hotkey配合trigger_on_release=True会专门监听组合键的释放动作,每次松开按键只会执行一次目标函数,完美解决重复触发的问题。
  • 最后调用keyboard.wait()是为了让程序保持运行状态,否则程序启动后会直接退出,无法监听任何按键事件。

内容的提问来源于stack exchange,提问作者Sunken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:16:15