Я использую модуль pynput и хочу перезапустить прослушиватель после выполнения определенной c комбинации правила - условия - ключа.
Код, который я написал, показан ниже:
from pynput.keyboard import Key, Listener
from langdetect import detect
from pynput import keyboard
def listener_manager():
#the idea is to return a new listener when needed
listener = keyboard.Listener(on_press=on_press)
return listener
def on_press(key):
global string
global listener
global controller
if key == keyboard.Key.esc: #if button escape is pressed close the program
listener.stop()
elif key == keyboard.Key.space:
print(string)
string=""
elif key == keyboard.Key.shift:
listener.stop()
controller = keyboard.Controller()
listener = listener_manager()
listener.start()
print("New listener started")
elif key== keyboard.Key.alt_l:
listener.stop()
controller = keyboard.Controller()
listener = listener_manager()
listener.start()
print("Left alt pressed")
else:
string = ''.join([string,str(key).replace("'","")])
string=""
"""This is the beginning"""
controller = keyboard.Controller()
# Collect events until released
listener = keyboard.Listener(on_press=on_press)
listener.start()
В основном я хочу перезапустить слушатель, когда shift или alt (ИЛИ, когда язык меняется), но код, который я написал, на самом деле не работал.
Любая помощь или совет были бы хорошими.
Спасибо заранее!