Тема: AHK: язык в системе
Добрый день, каким образом можно узнать нынешний язык ввода? Есть переменная A_Language, но она показывает лишь язык по умолчанию.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый день, каким образом можно узнать нынешний язык ввода? Есть переменная A_Language, но она показывает лишь язык по умолчанию.
F11::
WinGet, WinID,, A
ThreadID := DllCall("GetWindowThreadProcessId", UInt, WinID, UInt, 0)
InputLocaleID := DllCall("GetKeyboardLayout", UInt, ThreadID, UInt)
ToolTip, % InputLocaleID & 0xFFFF = 0x409 ? "En" : InputLocaleID & 0xFFFF = 0x419 ? "Ru" : "Другой"
Sleep, 400
ToolTip
Return
Благодарю, но я немного запутался: какое значение имеет на выходе InputLocaleID, и что с ней надо сделать
Ничего делать не надо, просто посмотреть на ToolTip вблизи курсора.
Я просто хочу в своем скрипте это использовать.
кхм.. и изменяется ли ThreadProcessID c течением времени, или можно однажды получить его в шапке?
Если InputLocaleID & 0xFFFF = 0x409 — английский, если InputLocaleID & 0xFFFF = 0x419 — русский. Для одного и того же окна ThreadProcessID не изменяется.
Спасибо, разобрался
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться