Горячие клавиши для этого:
Alt+Shift
- Windows 7 и Win button + Space
в Win 8 и 10.
Программно я могу сделать это, используя WM_INPUTLANGCHANGEREQUEST
, но это не так Windows. Я пытаюсь выяснить, как Windows меняет макет. Используя spy ++ Я понял, что Windows отправляет WM_INPUTLANGCHANGE
сообщение, которое меняет макет, поэтому я попробовал сам:
SendMessage(myHWND, WM_INPUTLANGCHANGE, 0xCC, 0x4190419);
У меня есть привязка клавиатуры, когда нажимаю f1 do отправка сообщения активному элементу управления текущего активного окна.
, но это не сработало, хотя сообщения в spy ++ одинаковы:

первое использование " Windows Горячая клавиша "/" Панель задач "для изменения макета, все работает. Второе мое сообщение, оно не сработало. Я что-то упускаю, почему сообщение работает для "Windows", но не для меня.
WM_INPUTLANGCHANGEREQUEST
работает, но оно останавливает некоторые определенные приложения, и я хотел бы выяснить способ Windows меняется ли макет, чтобы избежать этого.
- update .
В DxO Photolab 3 он зависает при использовании WM_INPUTLANGCHANGE в диалоге «Экспорт на диск»:
При изменении макета с использованием метода "Windows" (горячая клавиша / панель задач):
Работает нормально, без зависания.
Отправка WM_INPUTLANGCHANGE:
Получил WM_INPUTLANGCHANGEREQUEST и заморозил: 
Также подобное зависание я видел в Skype, MS Office, Adobe After Effects.