Проблема первой буквы при смене языка. pynput.keyboard

Задача следующая, захват нажатия клавиш и запись в лог, но при смене языка символы остаются неизменными т.е. "привет - ghbdtn" и наоборот, мной было найдено решение данной проблемы, но появилась новая: при смене языка первая буква остается прежней, а остальные меняются как положено. Пример: "gривет", "рello".

from pynput import keyboard
from threading import Thread
global key_save


def keycatch():

    def on_click(key):
        
        if type(key) is keyboard.Key:
            l.stop()
        global key_save
        if type(key) is keyboard.KeyCode:
            key_save = key
        else:
            key_save = ''
        l.stop()

    with keyboard.Listener(on_press=on_click) as l: l.join()


new_thread = Thread(target=keycatch)

while True:
    if not new_thread.is_alive():
         new_thread = Thread(target=keycatch)
         new_thread.start()
         new_thread.join()
    if key_save:
        print(key_save)

Может есть решение проще? Еще один момент, которого я так и не понял. При запуске система задает текущий языковой стандарт каждому новому потоку, как я понял keyboard.listener основан на запуске нового потока, но при перезапуске, языковой стандарт остается старый.


Ответы (0 шт):