首页 > 解决方案 > Python按下键直到另一个键

问题描述

我已经看过以前的帖子,但找不到有用的东西......

在全球范围内,我的目标是:python 中的脚本,如果我按“k”,它将开始保持“k”,直到我按转义键。但问题是:它没有'k',我不知道为什么

如果有人可以帮助我会很高兴,谢谢

from pynput import keyboard
import pyautogui

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
        if key.char == 'k':
            return False
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

def listening_k():
    with keyboard.Listener(
            on_press=on_press) as listener:
        listener.join()
    return True

def listening_esc():
    with keyboard.Listener(
            on_release=on_release) as listener:
        listener.join()
    return True


def hold_key(key):
    while listening_k() == True :
        pyautogui.keyDown(key)
        if listening_esc() == True :
            break

hold_key('k')

标签: pythonkeyboardpyautoguipynput

解决方案


如果按下“k”键,您可以通过拥有一个保存状态(布尔值)的变量来简化操作。每当您按下“k”键时使其为真,按下“esc”键时为假。


推荐阅读