Форум сайта python.su
Как переключать раскладку клавиатуры с рус на eng ? В идеале универсально для всех платформ, но можно и на виндовс. Гугл и поиск по форуме не дал ничего работающего. Единственное как определить номер раскладки
import ctypes u = ctypes.windll.LoadLibrary("user32.dll") pf = getattr(u, "GetKeyboardLayout") print (pf(0))
Офлайн
побалуйтесь этим
import keyboard as kb kb.press_and_release('shift + alt')
Онлайн
xam1816И как это даст понять какая раскладка сейчас и не переключит с нужной?
побалуйтесь этим
import keyboard as kb kb.press_and_release('Win+Space')
Офлайн
Но это не решает задачу (
Офлайн
oDoDoа какая задача?
Но это не решает задачу (
Онлайн
oDoDoэто конечно баловство,но вот
И как это даст понять какая раскладка сейчас и не переключит с нужной?
import keyboard as kb import win32api as win # определяет раскладку def get_name_layout(): name = win.GetKeyboardLayoutName() if name == '00000409': return 'en' elif name == '00000419': return 'ru' # меняет раскладку def change_layout(set_lay = None): if set_lay == 'ru' or set_lay == 'en': current_lay = get_name_layout() if current_lay == set_lay: print('ok') else: kb.press_and_release('shift + alt') else: print('переключение по умолчанию') kb.press_and_release('shift + alt') print('ok') change_layout('ru')
Онлайн
xam1816Спасибо, то что нужно. А почему баловство?
это конечно баловство,но вот
Офлайн
oDoDoпредполагаю, потому что смена раскладки должна осуществляться средствами ОС а не прикладной программой.
А почему баловство?
[code python][/code]
Офлайн