Python нажимайте клавишу до следующей клавиши - PullRequest
0 голосов
/ 08 апреля 2020

Я уже посмотрел предыдущий пост, но не могу найти что-то, что работает ...

Глобально моя цель: скрипт на python, что если я нажму 'k', он начнет удерживайте «k», пока я не нажму «escape». Но проблема в том, что он не содержит «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')

1 Ответ

0 голосов
/ 08 апреля 2020

Вы можете сделать это просто, имея переменную, которая содержит состояние (логическое значение), если нажата клавиша «k». Сделайте это True каждый раз, когда вы нажимаете клавишу 'k' и False для нажатия клавиши 'es c'.

...