使用Python的keyboard模块如何引用方向键?
解决keyboard模块方向键调用与热键参数问题
方向键的正确标识符:在
keyboard模块中,右键对应的文本是'right',你之前用的"right arrow"是错误写法,"K_RIGHT"属于其他库(比如pygame)的标识,不适用于此模块。热键注册的参数错误:你的
add_hotkey调用方式有误,回调函数的参数需要放在args元组里,trigger_on_release是关键字参数。原代码直接传20和True会导致参数解析错误,这才是你遇到大型报错的主要原因。
修正后的代码:
import keyboard def moveArrow(times): while times > 0: keyboard.press_and_release("right") times -= 1 # 正确传递参数:args是回调的参数元组,trigger_on_release用关键字指定 keyboard.add_hotkey("ctrl+shift+;", moveArrow, args=(20,), trigger_on_release=True) keyboard.wait("esc")
另外,如果你需要长按右键再释放(而非单次按下释放),可以分开调用keyboard.press('right')和keyboard.release('right'),配合time.sleep()控制时长:
import keyboard import time def holdRightArrow(duration): keyboard.press('right') time.sleep(duration) keyboard.release('right') keyboard.add_hotkey("ctrl+shift+;", holdRightArrow, args=(2,), trigger_on_release=True) keyboard.wait("esc")
内容的提问来源于stack exchange,提问作者Zane Sites
相关产品推荐
相关产品推荐

