如何在功能 运行 期间忽略所有用户输入?
How can I ignore all user inputs for duration of function run?
我有一个 Python 模块,它使用 pynput 侦听组合键,然后,一旦按下它,它就会在文本程序中键入一个字符串。
效果很好!除了...
在下面的示例中,用户的组合键设置为 shift + space。这很有意义,并且可能是 Windows 用户 运行 我的程序最常选择的键命令。问题是,当按住 shift 键时,它会改变 pynput 类型。它将输入 )!/20/2019.
而不是 01/20/2019
我需要一种方法来禁用键盘,直到 pyautogui 完成输入字符串。非常感谢您的帮助!!!
奖金问题:当组合键包含 ctrl 键时,我似乎无法得到结果。 Key.ctrl 根本无法触发,而其他键工作正常。
from pynput.keyboard import Key, Controller, Listener
import time
keyboard = Controller()
def insert(): # check line 1 of config file
keyboard.type('01/20/2019')
# The currently active modifiers
current = set()
def on_press(key):
if key in COMBINATION:
current.add(key)
if all(k in current for k in COMBINATION): # I don't know what this k in current for k shit is.
current.remove(key)
insert() # run insert
if key == Key.esc:
listener.stop()
def on_release(key):
try:
current.remove(key)
except KeyError:
pass
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
``
您可以在输入前使用 pyautogui.keyUp("shift")
。
def insert():
f=open('tc.txt')
line=f.readlines()
insert.timestamp=(line[0])
time.sleep(.1)
pyautogui.keyUp("shift")
pyautogui.typewrite(insert.timestamp)
我有一个 Python 模块,它使用 pynput 侦听组合键,然后,一旦按下它,它就会在文本程序中键入一个字符串。
效果很好!除了...
在下面的示例中,用户的组合键设置为 shift + space。这很有意义,并且可能是 Windows 用户 运行 我的程序最常选择的键命令。问题是,当按住 shift 键时,它会改变 pynput 类型。它将输入 )!/20/2019.
而不是 01/20/2019我需要一种方法来禁用键盘,直到 pyautogui 完成输入字符串。非常感谢您的帮助!!!
奖金问题:当组合键包含 ctrl 键时,我似乎无法得到结果。 Key.ctrl 根本无法触发,而其他键工作正常。
from pynput.keyboard import Key, Controller, Listener
import time
keyboard = Controller()
def insert(): # check line 1 of config file
keyboard.type('01/20/2019')
# The currently active modifiers
current = set()
def on_press(key):
if key in COMBINATION:
current.add(key)
if all(k in current for k in COMBINATION): # I don't know what this k in current for k shit is.
current.remove(key)
insert() # run insert
if key == Key.esc:
listener.stop()
def on_release(key):
try:
current.remove(key)
except KeyError:
pass
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
``
您可以在输入前使用 pyautogui.keyUp("shift")
。
def insert():
f=open('tc.txt')
line=f.readlines()
insert.timestamp=(line[0])
time.sleep(.1)
pyautogui.keyUp("shift")
pyautogui.typewrite(insert.timestamp)