Как получить событие о переключении языка ввода в Windows?
Я пытаюсь в своей программе сделать обработку событий о переключении языка ввода. Программа должна работать в фоне (не иметь активного окна или получать эти события, когда окно программы неактивно).
Я нашел несколько способов, но ни один у меня не сработал.
1) обработка WM_INPUTLANGCHANGE - согласно документации, присылается только активному окну в фокусе.
2) Имплементация ITfActiveLanguageProfileNotifySink или ITfLanguageProfileNotifySink. ITfActiveLanguageProfileNotifySink::OnActivated не dspsdftncz, метод ITfLanguageProfileNotifySink::OnLanguageChange, содержащий в параметрах язык, тоже не вызывается, а метод ITfLanguageProfileNotifySink::OnLanguageChanged (не содержащий языка) - вызывается только когда мое окно активно и в фокусе.
В чем может быть проблема? Какие еще способы можно попробовать?