1 (изменено: stuermer, 2021-12-05 19:47:17)

Тема: AHK: Переключение на англ. раскладку

Добрый день.

Подскажите, как функцией переключить раскладку на англ.

Есть такое решение:

^1::SetInputLang(0x0409) ; English (USA)

SetInputLang(Lang)
{
    WinExist("A")
    ControlGetFocus, CtrlInFocus
    PostMessage, 0x50, 0, % Lang, %CtrlInFocus%
}

Но непонятно, что это за окно:

WinExist("A")

и что и зачем туда посылается (первые 2 параметра):

PostMessage, 0x50, 0, % Lang, %CtrlInFocus%

2

Re: AHK: Переключение на англ. раскладку

stuermer, добро пожаловать на форум! Ознакомьтесь, пожалуйста, с Правилами, отредактируйте свой пост. Обратите внимание на оформление кода.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Переключение на англ. раскладку

Истправил.

4

Re: AHK: Переключение на англ. раскладку

stuermer пишет:

Подскажите, как функцией переключить раскладку на англ.

Суть вопроса в том, чтобы понять, как работает код, или в том, что он не работает?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Переключение на англ. раскладку

Понять. Без понимания нет смысла и тестировать.

6

Re: AHK: Переключение на англ. раскладку

stuermer

В чём проблема: IfWinExist / IfWinNotExist, PostMessage / SendMessage - изучайте.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7

Re: AHK: Переключение на англ. раскладку

Нормально кто-то ответить может?

8

Re: AHK: Переключение на англ. раскладку

Если имеете в виду, что справку читать не хотите, тогда вряд ли. Другое дело, что лучше читать оригинальную справку, а не перевод, он довольно устаревший.

stuermer пишет:

Но непонятно, что это за окно

Вот смотрите, в справке всё написано.
WinExist()
Первый параметр — WinTitle. Читаем:

A window title or other criteria identifying the target window. See WinTitle.

Переходим по ссылке, видим:

Что касается сообщения, можно найти информацию, например, вот так.
Там видим:

0x50 is WM_INPUTLANGCHANGEREQUEST

Ищем это сообщение в Гугле, находим определение на MSDN.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder