[win32] Переключение Input Layout

tima56

В общем, нужно написать свою альтернативу переключателю раскладок винды.
Недостатки стандартного становятся очевидны, когда раскладок на компе больше 2-х.
Как я это хочу сделать:
Ставлю WH_KEYBOARD_LL хук, в нем определяю, была ли нажата соответствующая комбинация.
Проблема:
А как теперь сменить раскладку у активного приложения? Хук то выполняется в другом процессе, а ActivateKeyboardLayout работает только для процесса, из которого он был вызван.
Скажите хотя бы, куда копать, а то медитация над МСДН мне что-то не помогла.

Dasar

хук у тебя же должен грузиться в каждый процесс, соответственно не должно быть проблем сменить у этого процесса раскладку

artimon

А вот эта шняга как работает?
http://haali.cs.msu.ru/winutils/lswitch.c
ЗЫ. Я в программировании под винду вообще ничего не знаю

tima56

А работает оно там вот так:
HWND hWnd = GetForegroundWindow;
PostMessage(hWnd,WM_INPUTLANGCHANGEREQUEST,0LPARAM)HKL_NEXT);

Спасибо за помощь

kruzer25

Кстати, а почему оно в половине приложений (icq lite, фар итд) не работает?
Оставить комментарий
Имя или ник:
Комментарий: