简体   繁体   English

Python 按下键直到另一个键

[英]Python press key down until another key

I've already looked at previous post, but can't find something that works...我已经看过以前的帖子,但找不到有用的东西......

Globally my goal: a script in python that if I press 'k' it will start to hold 'k' until I press escape.在全球范围内,我的目标是:python 中的一个脚本,如果我按“k”,它将开始保持“k”,直到我按退出键。 But the problem is: it doesn't hold 'k' and I don't know why但问题是:它不持有“k”,我不知道为什么

If someone might help I'd be glad, Thank you如果有人可以帮助我会很高兴,谢谢

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')

You can make it simple by having a variable that holds the state (boolean value) if 'k' key is on press.如果按下“k”键,您可以通过拥有一个包含 state(布尔值)的变量来简化操作。 Make it True anytime you press 'k' key and False for pressing 'esc' key.每当您按下“k”键时使其为真,按下“esc”键时为假。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM