【发布时间】:2020-09-09 20:13:09
【问题描述】:
我正在尝试使用 pynput 库编写一个程序,该库跟踪用户按键以及当用户按下特殊字符键时,例如:# 我的程序将立即按下另一个键。 例如,当用户按下 $ 符号时,程序将在其后按左键,光标将在 $ 符号后面移动一个字符。我的问题是,对于键入 $ 符号,用户按下 SHIFT + 5 并且在大多数情况下,用户只释放数字键并且 shift 键保持按下状态。在这种情况下,当我的程序按下左键时,插入仅按下左键,按下 SHIFT + 左键,这会导致标记字符而不是向左移动。 我想知道是否可以忽略用户密钥或以某种方式覆盖它。 感谢您的帮助。 谢谢
from pynput.keyboard import Key, Listener, Controller
import re
keyboard = Controller()
REGEX = re.compile('[@_!#$%^&*()<>?/\|}{~:]')
def on_press(key):
try:
if key != Key.left:
if REGEX.search(key.char) != None:
keyboard.press(Key.left)
keyboard.release(Key.left)
print("I pressed left for you")
else:
print("Nothing")
except Exception as e:
print(e)
with Listener(on_press=on_press) as listener:
listener.join()
【问题讨论】:
标签: python python-3.x keyboard keypress pynput