Помогите, пожалуйста, разобраться. В ОС Vista не перехватываются сообщения смены раскладки клавиатуры. Под ОС XP все работает.
Код:
oldOnMessage: TMessageEvent;
…
oldOnMessage := Application.OnMessage;
Application.OnMessage := LangChange;
…
procedure TLanguage.LangChange(var m: TMsg; var Handled: Boolean);
begin
if (m.message = WM_INPUTLANGCHANGEREQUEST) or
(m.message = WM_INPUTLANGCHANGE) then …
if Assigned(oldOnMessage) then oldOnMessage(m, Handled);
end;