var4yn_nik
@var4yn_nik
Герой аниме OreGairu

Как узнать, какой язык выбран?

Как узнать какой язык выбран пользователем? Какие символы пойдут: кириллица или латиница?
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Python
software engineer
Колупать в сторону Windows API
Не забывай, что в винде может быть один язык для всех окон или наоборот, у каждого окна свой, поэтому нужно сперва найти нужный процесс.
Что-то вроде такого:

import ctypes
user32 = ctypes.WinDLL('user32', use_last_error=True)
curr_window = user32.GetForegroundWindow()
thread_id = user32.GetWindowThreadProcessId(curr_window, 0)
# Made up of 0xAAABBBB, AAA = HKL (handle object) & BBBB = language ID
klid = user32.GetKeyboardLayout(thread_id)
lid = klid & (2**16 - 1)
lid_hex = hex(lid)

Значения для US и RU должны быть типа
'0x409' - US
'0x419' - RU
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
>Какие символы пойдут: кириллица или латиница?
Будет ctrl+v на китайском
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы