![]() |
![]() |
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 не лучший вариант - ведь в этом случае тебе придется сначала определить комбинацию клавиш, используемую для смены раскладки... |