Найти - Пользователи
Полная версия: Смена раскладки клавиатуры
Начало » Python для новичков » Смена раскладки клавиатуры
1
oDoDo
Как переключать раскладку клавиатуры с рус на eng ? В идеале универсально для всех платформ, но можно и на виндовс. Гугл и поиск по форуме не дал ничего работающего. Единственное как определить номер раскладки
 import ctypes
u = ctypes.windll.LoadLibrary("user32.dll")
pf = getattr(u, "GetKeyboardLayout")
print (pf(0))
Но что с ним делать не понятно.
xam1816
побалуйтесь этим

 import keyboard as kb
kb.press_and_release('shift + alt')
oDoDo
xam1816
побалуйтесь этим
И как это даст понять какая раскладка сейчас и не переключит с нужной?
 import keyboard as kb
kb.press_and_release('Win+Space')
Так универсальнее)
oDoDo
Но это не решает задачу (
xam1816
oDoDo
Но это не решает задачу (
а какая задача?
xam1816
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')
oDoDo
xam1816
это конечно баловство,но вот
Спасибо, то что нужно. А почему баловство?
PEHDOM
oDoDo
А почему баловство?
предполагаю, потому что смена раскладки должна осуществляться средствами ОС а не прикладной программой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB