Проблема первой буквы при смене языка. 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 основан на запуске нового потока, но при перезапуске, языковой стандарт остается старый.