К списку форумов К списку вопросов
Как переключить раскладку не в своем приложении?
mif
25.04.2004 - 15:17
Вот пробовал в Delphi и в VB6 делать так:
Var
Rus, Eng, TmpL: HKL;
При загрузке формы:
Rus:=LoadKeyboardLayout('00000419';0);
Eng:=LoadKeyboardLayout('00000409';0);
В таймере срабатывающем раз в 5 сек:
If TmpL<>Eng Then TmpL:=Eng Else TmpL:=Rus;
ActivateKeyboardLayout(TmpL; 0) //или ActivateKeyboardLayout(TmpL; 256)
В себе переключает язык, а в других окнах нет. Как переключить язык в чужой программе?
ЗЫ: HKL_NEXT, HKL_PREV тоже пробовал, не помогает.
?
1 - 26.04.2004 - 17:42
HKL ActivateKeyboardLayout(
  HKL hkl, // input locale identifier
  UINT Flags // input locale identifier options
);
подробности в MSDN.
UE
2 - 26.04.2004 - 17:46
mif, может быть надо сделать AttachThreadInput к тому потоку, в котором ты хочешь поменять раскадку?
denkon
3 - 26.04.2004 - 17:48
А еще можно прпробовать SendMessage(WM_KEYDOWN...)
UE
4 - 26.04.2004 - 17:58
2denkon, WM_KEYDOWN не лучший вариант - ведь в этом случае тебе придется сначала определить комбинацию клавиш, используемую для смены раскладки...

К списку вопросов на форуме Программирование

>>