Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2020 02:08:57

oDoDo
Зарегистрирован: 2020-05-05
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

Как переключать раскладку клавиатуры с рус на eng ? В идеале универсально для всех платформ, но можно и на виндовс. Гугл и поиск по форуме не дал ничего работающего. Единственное как определить номер раскладки

 import ctypes
u = ctypes.windll.LoadLibrary("user32.dll")
pf = getattr(u, "GetKeyboardLayout")
print (pf(0))
Но что с ним делать не понятно.

Офлайн

#2 Сен. 2, 2020 23:09:04

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

побалуйтесь этим

 import keyboard as kb
kb.press_and_release('shift + alt')

Онлайн

#3 Сен. 3, 2020 00:07:08

oDoDo
Зарегистрирован: 2020-05-05
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

xam1816
побалуйтесь этим
И как это даст понять какая раскладка сейчас и не переключит с нужной?
 import keyboard as kb
kb.press_and_release('Win+Space')
Так универсальнее)

Офлайн

#4 Сен. 3, 2020 00:07:52

oDoDo
Зарегистрирован: 2020-05-05
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

Но это не решает задачу (

Офлайн

#5 Сен. 3, 2020 00:20:27

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

oDoDo
Но это не решает задачу (
а какая задача?

Онлайн

#6 Сен. 3, 2020 00:31:50

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

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')

Онлайн

#7 Сен. 3, 2020 09:54:56

oDoDo
Зарегистрирован: 2020-05-05
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

xam1816
это конечно баловство,но вот
Спасибо, то что нужно. А почему баловство?

Офлайн

#8 Сен. 13, 2020 10:25:51

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Смена раскладки клавиатуры

oDoDo
А почему баловство?
предполагаю, потому что смена раскладки должна осуществляться средствами ОС а не прикладной программой.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version