Python Изменение раскладки клавиатуры
OC windows 10
для получения раскладки клавиатуры использую функцию (она работает корректно):
import ctypes
def get_layout():
u = ctypes.windll.LoadLibrary("user32.dll")
pf = getattr(u, "GetKeyboardLayout")
if hex(pf(0)) == '0x4190419':
return 'ru'
if hex(pf(0)) == '0x4090409':
return 'en'
для изменения на иную раскладку:
import py_win_keyboard_layout
# переключение на русскую раскладку
py_win_keyboard_layout.change_foreground_window_keyboard_layout(0x04090419)
# переключение на английскую раскладку
py_win_keyboard_layout.change_foreground_window_keyboard_layout(0x04090409)
Переключение на en(0x04090409) происходит верно, но переключение на ру(0x04090419), игнорируется без какой-либо ошибки.
ps. попробовал использовать win32api, опять же команды игнорируются
import win32api
win32api.LoadKeyboardLayout("00000409", 1)
win32api.LoadKeyboardLayout("00000419", 2)
Буду крайне признателен за указание ошибки или иной путь решения. Заранее благодарю за помощь!
Источник: Stack Overflow на русском