【发布时间】:2019-06-06 00:09:55
【问题描述】:
我正在编写一个脚本,当用户按下 Shift+P 时,将输入一个文本字符串。它可以工作,当我按 Shift+P 时,它会输入文本,但不会停止输入文本。我认为这是我做过但没有看到的事情。为什么这会不断循环和打字?我如何让它在输入完“Hello, World”一次后停止?
from pynput import keyboard
import pyautogui as pg
COMBINATIONS = [
{keyboard.Key.shift, keyboard.KeyCode(char="p")},
{keyboard.Key.shift, keyboard.KeyCode(char="P")}
]
current = set()
def execute():
pg.press("backspace")
pg.typewrite("Hello, World\n", 0.25)
def on_press(key):
if any ([key in COMBO for COMBO in COMBINATIONS]):
current.add(key)
if any(all(k in current for k in COMBO) for COMBO in COMBINATIONS):
execute()
def on_release(key):
if any([key in COMBO for COMBO in COMBINATIONS]):
current.remove(key)
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
【问题讨论】:
标签: python loops pyautogui pynput